/* File: QuickTimeComponents.h Contains: xxx put contents here xxx Written by: xxx put writers here xxx Copyright: © 1992 by Apple Computer, Inc., all rights reserved. Change History (most recent first): 10/8/92 DH Update to QuickTime 1.5 header. 9/1/92 DH Set back to Quicktime 1.0 header. */ /************************************************************ Created: Friday, October 2, 1992 at 11:40 AM QuickTimeComponents.h C Interface to the Macintosh Libraries Copyright Apple Computer, Inc. 1991, 1992 All rights reserved ************************************************************/ #ifndef __QUICKTIMECOMPONENTS__ #define __QUICKTIMECOMPONENTS__ #ifndef __COMPONENTS__ #include #endif #ifndef __IMAGECOMPRESSION__ #include #endif #ifndef __MOVIES__ #include #endif #ifndef __QUICKDRAW__ #include #endif #ifndef __VIDEO__ #include #endif #define clockComponentType 'clok' #define systemTickClock 'tick' /* subtype: 60ths since boot */ #define systemSecondClock 'seco' /* subtype: seconds since 1904 */ #define systemMillisecondClock 'mill' /* subtype: 1000ths since boot */ #define systemMicrosecondClock 'micr' /* subtype: 1000000ths since boot */ enum { kClockRateIsLinear = 1, kClockImplementsCallBacks = 2 }; #define ClockGetTime GetClockTime #ifdef __cplusplus extern "C" { #endif __cplusplus /** These are Clock procedures **/ pascal ComponentResult ClockGetTime (ComponentInstance aClock, TimeRecord *out) = {0x2F3C,0x4,0x1,0x7000,0xA82A}; pascal QTCallBack ClockNewCallBack (ComponentInstance aClock, TimeBase tb, short callBackType) = {0x2F3C,0x6,0x2,0x7000,0xA82A}; pascal ComponentResult ClockDisposeCallBack (ComponentInstance aClock, QTCallBack cb) = {0x2F3C,0x4,0x3,0x7000,0xA82A}; pascal ComponentResult ClockCallMeWhen (ComponentInstance aClock, QTCallBack cb, long param1, long param2, long param3) = {0x2F3C,0x10,0x4,0x7000,0xA82A}; pascal ComponentResult ClockCancelCallBack (ComponentInstance aClock, QTCallBack cb) = {0x2F3C,0x4,0x5,0x7000,0xA82A}; pascal ComponentResult ClockRateChanged (ComponentInstance aClock, QTCallBack cb) = {0x2F3C,0x4,0x6,0x7000,0xA82A}; pascal ComponentResult ClockTimeChanged (ComponentInstance aClock, QTCallBack cb) = {0x2F3C,0x4,0x7,0x7000,0xA82A}; pascal ComponentResult ClockSetTimeBase (ComponentInstance aClock, TimeBase tb) = {0x2F3C,0x4,0x8,0x7000,0xA82A}; pascal ComponentResult ClockStartStopChanged (ComponentInstance aClock, QTCallBack cb, Boolean startChanged, Boolean stopChanged) = {0x2F3C,0x8,0x9,0x7000,0xA82A}; pascal ComponentResult ClockGetRate (ComponentInstance aClock, Fixed *rate) = {0x2F3C,0x4,0xA,0x7000,0xA82A}; #ifdef __cplusplus } #endif __cplusplus enum { kClockGetTimeSelect = 0x1, kClockNewCallBackSelect = 0x2, kClockDisposeCallBackSelect = 0x3, kClockCallMeWhenSelect = 0x4, kClockCancelCallBackSelect = 0x5, kClockRateChangedSelect = 0x6, kClockTimeChangedSelect = 0x7, kClockSetTimeBaseSelect = 0x8, kClockStartStopChangedSelect = 0x9, kClockGetRateSelect = 0xA }; /* General Sequence Grab stuff */ typedef ComponentInstance SeqGrabComponent; typedef ComponentInstance SGChannel; #define SeqGrabComponentType 'barg' #define SeqGrabChannelType 'sgch' #define SeqGrabPanelType 'sgpn' #define SeqGrabCompressionPanelType 'comp' #define SeqGrabSourcePanelType 'sour' enum { seqGrabToDisk = 1, seqGrabToMemory = 2, seqGrabDontUseTempMemory = 4, seqGrabAppendToFile = 8, seqGrabDontAddMovieResource = 16, seqGrabDontMakeMovie = 32, seqGrabPreExtendFile = 64 }; typedef unsigned long SeqGrabDataOutputEnum; enum { seqGrabRecord = 1, seqGrabPreview = 2, seqGrabPlayDuringRecord = 4 }; typedef unsigned long SeqGrabUsageEnum; enum { seqGrabHasBounds = 1, seqGrabHasVolume = 2, seqGrabHasDiscreteSamples = 4 }; typedef unsigned long SeqGrabChannelInfoEnum; typedef struct seqGrabFrameInfo { long frameOffset; long frameTime; long frameSize; SGChannel frameChannel; long frameRefCon; } seqGrabFrameInfo; enum { grabPictOffScreen = 1, grabPictIgnoreClip = 2 }; #define sgFlagControlledGrab (1) typedef pascal OSErr (*SGDataProc)(SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType, long refCon); typedef struct SGDeviceName { Str63 name; Handle icon; long flags; long refCon; long reserved; // zero } SGDeviceName; #define sgDeviceNameFlagDeviceUnavailable (1) typedef struct SGDeviceListRecord { short count; short selectedIndex; long reserved; // zero SGDeviceName entry[1]; } SGDeviceListRecord, *SGDeviceListPtr, **SGDeviceList; #define sgDeviceListWithIcons (1) #define sgDeviceListDontCheckAvailability (2) enum { seqGrabWriteAppend, seqGrabWriteReserve, seqGrabWriteFill }; enum { seqGrabUnpause = 0, seqGrabPause = 1, seqGrabPauseForMenu = 3 }; enum { channelFlagDontOpenResFile = 2, channelFlagHasDependency = 4 }; typedef pascal Boolean (*SGModalFilterProcPtr)(DialogPtr theDialog, EventRecord *theEvent, short *itemHit, long refCon); enum { sgPanelFlagForPanel = 1 }; #define channelPlayNormal 0 #define channelPlayFast 1 #define channelPlayHighQuality 2 #define channelPlayAllData 4 #ifdef __cplusplus extern "C" { #endif __cplusplus pascal ComponentResult SGInitialize (SeqGrabComponent s) = {0x2F3C,0,0x1,0x7000,0xA82A}; pascal ComponentResult SGSetDataOutput (SeqGrabComponent s, FSSpec *movieFile, long whereFlags) = {0x2F3C,0x8,0x2,0x7000,0xA82A}; pascal ComponentResult SGGetDataOutput (SeqGrabComponent s, FSSpec *movieFile, long *whereFlags) = {0x2F3C,0x8,0x3,0x7000,0xA82A}; pascal ComponentResult SGSetGWorld (SeqGrabComponent s, CGrafPtr gp, GDHandle gd) = {0x2F3C,0x8,0x4,0x7000,0xA82A}; pascal ComponentResult SGGetGWorld (SeqGrabComponent s, CGrafPtr *gp, GDHandle *gd) = {0x2F3C,0x8,0x5,0x7000,0xA82A}; pascal ComponentResult SGNewChannel (SeqGrabComponent s, OSType channelType, SGChannel *ref) = {0x2F3C,0x8,0x6,0x7000,0xA82A}; pascal ComponentResult SGDisposeChannel (SeqGrabComponent s, SGChannel c) = {0x2F3C,0x4,0x7,0x7000,0xA82A}; pascal ComponentResult SGStartPreview (SeqGrabComponent s) = {0x2F3C,0,0x10,0x7000,0xA82A}; pascal ComponentResult SGStartRecord (SeqGrabComponent s) = {0x2F3C,0,0x11,0x7000,0xA82A}; pascal ComponentResult SGIdle (SeqGrabComponent s) = {0x2F3C,0,0x12,0x7000,0xA82A}; pascal ComponentResult SGStop (SeqGrabComponent s) = {0x2F3C,0,0x13,0x7000,0xA82A}; pascal ComponentResult SGPause (SeqGrabComponent s, Byte pause) = {0x2F3C,0x2,0x14,0x7000,0xA82A}; pascal ComponentResult SGPrepare (SeqGrabComponent s, Boolean prepareForPreview, Boolean prepareForRecord) = {0x2F3C,0x4,0x15,0x7000,0xA82A}; pascal ComponentResult SGRelease (SeqGrabComponent s) = {0x2F3C,0,0x16,0x7000,0xA82A}; pascal Movie SGGetMovie (SeqGrabComponent s) = {0x2F3C,0,0x17,0x7000,0xA82A}; pascal ComponentResult SGSetMaximumRecordTime (SeqGrabComponent s, unsigned long ticks) = {0x2F3C,0x4,0x18,0x7000,0xA82A}; pascal ComponentResult SGGetMaximumRecordTime (SeqGrabComponent s, unsigned long *ticks) = {0x2F3C,0x4,0x19,0x7000,0xA82A}; pascal ComponentResult SGGetStorageSpaceRemaining (SeqGrabComponent s, unsigned long *bytes) = {0x2F3C,0x4,0x1A,0x7000,0xA82A}; pascal ComponentResult SGGetTimeRemaining (SeqGrabComponent s, long *ticksLeft) = {0x2F3C,0x4,0x1B,0x7000,0xA82A}; pascal ComponentResult SGGrabPict (SeqGrabComponent s, PicHandle *p, const Rect *bounds, short offscreenDepth, long grabPictFlags) = {0x2F3C,0xE,0x1C,0x7000,0xA82A}; pascal ComponentResult SGGetLastMovieResID (SeqGrabComponent s, short *resID) = {0x2F3C,0x4,0x1D,0x7000,0xA82A}; pascal ComponentResult SGSetFlags (SeqGrabComponent s, long sgFlags) = {0x2F3C,0x4,0x1E,0x7000,0xA82A}; pascal ComponentResult SGGetFlags (SeqGrabComponent s, long *sgFlags) = {0x2F3C,0x4,0x1F,0x7000,0xA82A}; pascal ComponentResult SGSetDataProc (SeqGrabComponent s, SGDataProc proc, long refCon) = {0x2F3C,0x8,0x20,0x7000,0xA82A}; pascal ComponentResult SGNewChannelFromComponent (SeqGrabComponent s, SGChannel *newChannel, Component sgChannelComponent) = {0x2F3C,0x8,0x21,0x7000,0xA82A}; pascal ComponentResult SGDisposeDeviceList (SeqGrabComponent s, SGDeviceList list) = {0x2F3C,0x4,0x22,0x7000,0xA82A}; pascal ComponentResult SGAppendDeviceListToMenu (SeqGrabComponent s, SGDeviceList list, MenuHandle mh) = {0x2F3C,0x8,0x23,0x7000,0xA82A}; pascal ComponentResult SGSetSettings (SeqGrabComponent s, UserData ud, long flags) = {0x2F3C,0x8,0x24,0x7000,0xA82A}; pascal ComponentResult SGGetSettings (SeqGrabComponent s, UserData *ud, long flags) = {0x2F3C,0x8,0x25,0x7000,0xA82A}; pascal ComponentResult SGGetIndChannel (SeqGrabComponent s, short index, SGChannel *ref, OSType *chanType) = {0x2F3C,0xA,0x26,0x7000,0xA82A}; pascal ComponentResult SGUpdate (SeqGrabComponent s, RgnHandle updateRgn) = {0x2F3C,0x4,0x27,0x7000,0xA82A}; pascal ComponentResult SGGetPause (SeqGrabComponent s, Byte *paused) = {0x2F3C,0x4,0x28,0x7000,0xA82A}; pascal ComponentResult SGSettingsDialog (SeqGrabComponent s, SGChannel c, short numPanels, Component *panelList, long flags, SGModalFilterProcPtr proc, long procRefNum) = {0x2F3C,0x16,0x29,0x7000,0xA82A}; pascal ComponentResult SGGetAlignmentProc (SeqGrabComponent s, AlignmentProcRecordPtr alignmentProc) = {0x2F3C,0x4,0x2A,0x7000,0xA82A}; pascal ComponentResult SGSetChannelSettings (SeqGrabComponent s, SGChannel c, UserData ud, long flags) = {0x2F3C,0xC,0x2B,0x7000,0xA82A}; pascal ComponentResult SGGetChannelSettings (SeqGrabComponent s, SGChannel c, UserData *ud, long flags) = {0x2F3C,0xC,0x2C,0x7000,0xA82A}; /* calls from Channel to seqGrab */ pascal ComponentResult SGWriteMovieData (SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset) = {0x2F3C,0x10,0x100,0x7000,0xA82A}; pascal ComponentResult SGAddFrameReference (SeqGrabComponent s, seqGrabFrameInfo *frameInfo) = {0x2F3C,0x4,0x101,0x7000,0xA82A}; pascal ComponentResult SGGetNextFrameReference (SeqGrabComponent s, seqGrabFrameInfo *frameInfo, TimeValue *frameDuration, long *frameNumber) = {0x2F3C,0xC,0x102,0x7000,0xA82A}; pascal ComponentResult SGGetTimeBase (SeqGrabComponent s, TimeBase *tb) = {0x2F3C,0x4,0x103,0x7000,0xA82A}; pascal ComponentResult SGSortDeviceList (SeqGrabComponent s, SGDeviceList list) = {0x2F3C,0x4,0x104,0x7000,0xA82A}; pascal ComponentResult SGAddMovieData (SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType) = {0x2F3C,0x1A,0x105,0x7000,0xA82A}; pascal ComponentResult SGChangedSource (SeqGrabComponent s, SGChannel c) = {0x2F3C,0x4,0x106,0x7000,0xA82A}; /*** Sequence Grab CHANNEL Component Stuff ***/ pascal ComponentResult SGSetChannelUsage (SGChannel c, long usage) = {0x2F3C,0x4,0x80,0x7000,0xA82A}; pascal ComponentResult SGGetChannelUsage (SGChannel c, long *usage) = {0x2F3C,0x4,0x81,0x7000,0xA82A}; pascal ComponentResult SGSetChannelBounds (SGChannel c, const Rect *bounds) = {0x2F3C,0x4,0x82,0x7000,0xA82A}; pascal ComponentResult SGGetChannelBounds (SGChannel c, Rect *bounds) = {0x2F3C,0x4,0x83,0x7000,0xA82A}; pascal ComponentResult SGSetChannelVolume (SGChannel c, short volume) = {0x2F3C,0x2,0x84,0x7000,0xA82A}; pascal ComponentResult SGGetChannelVolume (SGChannel c, short *volume) = {0x2F3C,0x4,0x85,0x7000,0xA82A}; pascal ComponentResult SGGetChannelInfo (SGChannel c, long *channelInfo) = {0x2F3C,0x4,0x86,0x7000,0xA82A}; pascal ComponentResult SGSetChannelPlayFlags (SGChannel c, long playFlags) = {0x2F3C,0x4,0x87,0x7000,0xA82A}; pascal ComponentResult SGGetChannelPlayFlags (SGChannel c, long *playFlags) = {0x2F3C,0x4,0x88,0x7000,0xA82A}; pascal ComponentResult SGSetChannelMaxFrames (SGChannel c, long frameCount) = {0x2F3C,0x4,0x89,0x7000,0xA82A}; pascal ComponentResult SGGetChannelMaxFrames (SGChannel c, long *frameCount) = {0x2F3C,0x4,0x8A,0x7000,0xA82A}; pascal ComponentResult SGSetChannelRefCon (SGChannel c, long refCon) = {0x2F3C,0x4,0x8B,0x7000,0xA82A}; pascal ComponentResult SGSetChannelClip (SGChannel c, RgnHandle theClip) = {0x2F3C,0x4,0x8C,0x7000,0xA82A}; pascal ComponentResult SGGetChannelClip (SGChannel c, RgnHandle *theClip) = {0x2F3C,0x4,0x8D,0x7000,0xA82A}; pascal ComponentResult SGGetChannelSampleDescription (SGChannel c, Handle sampleDesc) = {0x2F3C,0x4,0x8E,0x7000,0xA82A}; pascal ComponentResult SGGetChannelDeviceList (SGChannel c, long selectionFlags, SGDeviceList *list) = {0x2F3C,0x8,0x8F,0x7000,0xA82A}; pascal ComponentResult SGSetChannelDevice (SGChannel c, StringPtr name) = {0x2F3C,0x4,0x90,0x7000,0xA82A}; pascal ComponentResult SGSetChannelMatrix (SGChannel c, const MatrixRecord *m) = {0x2F3C,0x4,0x91,0x7000,0xA82A}; pascal ComponentResult SGGetChannelMatrix (SGChannel c, MatrixRecord *m) = {0x2F3C,0x4,0x92,0x7000,0xA82A}; pascal ComponentResult SGGetChannelTimeScale (SGChannel c, TimeScale *scale) = {0x2F3C,0x4,0x93,0x7000,0xA82A}; /* calls from seqGrab to Channel */ pascal ComponentResult SGInitChannel (SGChannel c, SeqGrabComponent owner) = {0x2F3C,0x4,0x180,0x7000,0xA82A}; pascal ComponentResult SGWriteSamples (SGChannel c, Movie m, AliasHandle theFile) = {0x2F3C,0x8,0x181,0x7000,0xA82A}; pascal ComponentResult SGGetDataRate (SGChannel c, long *bytesPerSecond) = {0x2F3C,0x4,0x182,0x7000,0xA82A}; pascal ComponentResult SGAlignChannelRect (SGChannel c, Rect *r) = {0x2F3C,0x4,0x183,0x7000,0xA82A}; /* Dorky dialog panel calls */ pascal ComponentResult SGPanelGetDitl (SeqGrabComponent s, Handle *ditl) = {0x2F3C,0x4,0x200,0x7000,0xA82A}; pascal ComponentResult SGPanelGetTitle (SeqGrabComponent s, Str255 title) = {0x2F3C,0x4,0x201,0x7000,0xA82A}; pascal ComponentResult SGPanelCanRun (SeqGrabComponent s, SGChannel c) = {0x2F3C,0x4,0x202,0x7000,0xA82A}; pascal ComponentResult SGPanelInstall (SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset) = {0x2F3C,0xA,0x203,0x7000,0xA82A}; pascal ComponentResult SGPanelEvent (SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, EventRecord *theEvent, short *itemHit, Boolean *handled) = {0x2F3C,0x16,0x204,0x7000,0xA82A}; pascal ComponentResult SGPanelItem (SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, short itemNum) = {0x2F3C,0xC,0x205,0x7000,0xA82A}; pascal ComponentResult SGPanelRemove (SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset) = {0x2F3C,0xA,0x206,0x7000,0xA82A}; pascal ComponentResult SGPanelSetGrabber (SeqGrabComponent s, SeqGrabComponent sg) = {0x2F3C,0x4,0x207,0x7000,0xA82A}; pascal ComponentResult SGPanelSetResFile (SeqGrabComponent s, short resRef) = {0x2F3C,0x2,0x208,0x7000,0xA82A}; pascal ComponentResult SGPanelGetSettings (SeqGrabComponent s, SGChannel c, UserData *ud, long flags) = {0x2F3C,0xC,0x209,0x7000,0xA82A}; pascal ComponentResult SGPanelSetSettings (SeqGrabComponent s, SGChannel c, UserData ud, long flags) = {0x2F3C,0xC,0x20A,0x7000,0xA82A}; pascal ComponentResult SGPanelValidateInput (SeqGrabComponent s, Boolean *ok) = {0x2F3C,0x4,0x20B,0x7000,0xA82A}; #ifdef __cplusplus } #endif __cplusplus /*** Sequence Grab VIDEO CHANNEL Component Stuff ***/ /* Video stuff */ typedef struct SGCompressInfo { Ptr buffer; unsigned long bufferSize; unsigned char similarity; unsigned char reserved; } SGCompressInfo; typedef pascal ComponentResult (*GrabProc)(SGChannel c, short bufferNum, long refCon); typedef pascal ComponentResult (*GrabCompleteProc)(SGChannel c, short bufferNum, Boolean *done, long refCon); typedef pascal ComponentResult (*DisplayProc)(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon); typedef pascal ComponentResult (*CompressProc)(SGChannel c, short bufferNum, long refCon); typedef pascal ComponentResult (*CompressCompleteProc)(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci, long refCon); typedef pascal ComponentResult (*AddFrameProc)(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci, long refCon); typedef pascal ComponentResult (*TransferFrameProc)(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon); typedef pascal ComponentResult (*GrabCompressCompleteProc)(SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *t, long refCon); typedef pascal ComponentResult (*DisplayCompressProc)(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn, long refCon); struct VideoBottles { short procCount; GrabProc grabProc; GrabCompleteProc grabCompleteProc; DisplayProc displayProc; CompressProc compressProc; CompressCompleteProc compressCompleteProc; AddFrameProc addFrameProc; TransferFrameProc transferFrameProc; GrabCompressCompleteProc grabCompressCompleteProc; DisplayCompressProc displayCompressProc; }; typedef struct VideoBottles VideoBottles; #ifdef __cplusplus extern "C" { #endif __cplusplus pascal ComponentResult SGGetSrcVideoBounds (SGChannel c, Rect *r) = {0x2F3C,0x4,0x100,0x7000,0xA82A}; pascal ComponentResult SGSetVideoRect (SGChannel c, Rect *r) = {0x2F3C,0x4,0x101,0x7000,0xA82A}; pascal ComponentResult SGGetVideoRect (SGChannel c, Rect *r) = {0x2F3C,0x4,0x102,0x7000,0xA82A}; pascal ComponentResult SGGetVideoCompressorType (SGChannel c, OSType *compressorType) = {0x2F3C,0x4,0x103,0x7000,0xA82A}; pascal ComponentResult SGSetVideoCompressorType (SGChannel c, OSType compressorType) = {0x2F3C,0x4,0x104,0x7000,0xA82A}; pascal ComponentResult SGSetVideoCompressor (SGChannel c, short depth, CompressorComponent compressor, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate) = {0x2F3C,0x12,0x105,0x7000,0xA82A}; pascal ComponentResult SGGetVideoCompressor (SGChannel c, short *depth, CompressorComponent *compressor, CodecQ *spatialQuality, CodecQ *temporalQuality, long *keyFrameRate) = {0x2F3C,0x14,0x106,0x7000,0xA82A}; pascal ComponentInstance SGGetVideoDigitizerComponent (SGChannel c) = {0x2F3C,0,0x107,0x7000,0xA82A}; pascal ComponentResult SGSetVideoDigitizerComponent (SGChannel c, ComponentInstance vdig) = {0x2F3C,0x4,0x108,0x7000,0xA82A}; pascal ComponentResult SGVideoDigitizerChanged (SGChannel c) = {0x2F3C,0,0x109,0x7000,0xA82A}; pascal ComponentResult SGSetVideoBottlenecks (SGChannel c, VideoBottles *vb) = {0x2F3C,0x4,0x10A,0x7000,0xA82A}; pascal ComponentResult SGGetVideoBottlenecks (SGChannel c, VideoBottles *vb) = {0x2F3C,0x4,0x10B,0x7000,0xA82A}; pascal ComponentResult SGGrabFrame (SGChannel c, short bufferNum) = {0x2F3C,0x2,0x10C,0x7000,0xA82A}; pascal ComponentResult SGGrabFrameComplete (SGChannel c, short bufferNum, Boolean *done) = {0x2F3C,0x6,0x10D,0x7000,0xA82A}; pascal ComponentResult SGDisplayFrame (SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn) = {0x2F3C,0xA,0x10E,0x7000,0xA82A}; pascal ComponentResult SGCompressFrame (SGChannel c, short bufferNum) = {0x2F3C,0x2,0x10F,0x7000,0xA82A}; pascal ComponentResult SGCompressFrameComplete (SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci) = {0x2F3C,0xA,0x110,0x7000,0xA82A}; pascal ComponentResult SGAddFrame (SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci) = {0x2F3C,0xE,0x111,0x7000,0xA82A}; pascal ComponentResult SGTransferFrameForCompress (SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn) = {0x2F3C,0xA,0x112,0x7000,0xA82A}; pascal ComponentResult SGSetCompressBuffer (SGChannel c, short depth, const Rect *compressSize) = {0x2F3C,0x6,0x113,0x7000,0xA82A}; pascal ComponentResult SGGetCompressBuffer (SGChannel c, short *depth, Rect *compressSize) = {0x2F3C,0x8,0x114,0x7000,0xA82A}; pascal ComponentResult SGGetBufferInfo (SGChannel c, short bufferNum, PixMapHandle *bufferPM, Rect *bufferRect, GWorldPtr *compressBuffer, Rect *compressBufferRect) = {0x2F3C,0x12,0x115,0x7000,0xA82A}; pascal ComponentResult SGSetUseScreenBuffer (SGChannel c, Boolean useScreenBuffer) = {0x2F3C,0x2,0x116,0x7000,0xA82A}; pascal ComponentResult SGGetUseScreenBuffer (SGChannel c, Boolean *useScreenBuffer) = {0x2F3C,0x4,0x117,0x7000,0xA82A}; pascal ComponentResult SGGrabCompressComplete (SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *tr) = {0x2F3C,0xC,0x118,0x7000,0xA82A}; pascal ComponentResult SGDisplayCompress (SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn) = {0x2F3C,0x10,0x119,0x7000,0xA82A}; pascal ComponentResult SGSetFrameRate (SGChannel c, Fixed frameRate) = {0x2F3C,0x4,0x11A,0x7000,0xA82A}; pascal ComponentResult SGGetFrameRate (SGChannel c, Fixed *frameRate) = {0x2F3C,0x4,0x11B,0x7000,0xA82A}; #ifdef __cplusplus } #endif __cplusplus /*** Sequence Grab SOUND CHANNEL Component Stuff ***/ /* Sound stuff */ #ifdef __cplusplus extern "C" { #endif __cplusplus pascal ComponentResult SGSetSoundInputDriver (SGChannel c, const Str255 driverName) = {0x2F3C,0x4,0x100,0x7000,0xA82A}; pascal long SGGetSoundInputDriver (SGChannel c) = {0x2F3C,0,0x101,0x7000,0xA82A}; pascal ComponentResult SGSoundInputDriverChanged (SGChannel c) = {0x2F3C,0,0x102,0x7000,0xA82A}; pascal ComponentResult SGSetSoundRecordChunkSize (SGChannel c, long seconds) = {0x2F3C,0x4,0x103,0x7000,0xA82A}; pascal long SGGetSoundRecordChunkSize (SGChannel c) = {0x2F3C,0,0x104,0x7000,0xA82A}; pascal ComponentResult SGSetSoundInputRate (SGChannel c, Fixed rate) = {0x2F3C,0x4,0x105,0x7000,0xA82A}; pascal Fixed SGGetSoundInputRate (SGChannel c) = {0x2F3C,0,0x106,0x7000,0xA82A}; pascal ComponentResult SGSetSoundInputParameters (SGChannel c, short sampleSize, short numChannels, OSType compressionType) = {0x2F3C,0x8,0x107,0x7000,0xA82A}; pascal ComponentResult SGGetSoundInputParameters (SGChannel c, short *sampleSize, short *numChannels, OSType *compressionType) = {0x2F3C,0xC,0x108,0x7000,0xA82A}; #ifdef __cplusplus } #endif __cplusplus #define sgChannelAtom 'chan' #define sgChannelSettingsAtom 'ctom' #define sgChannelDescription 'cdsc' #define sgChannelSettings 'cset' #define sgDeviceNameType 'name' #define sgUsageType 'use ' #define sgPlayFlagsType 'plyf' #define sgClipType 'clip' #define sgMatrixType 'mtrx' #define sgVolumeType 'volu' #define sgPanelSettingsAtom 'ptom' #define sgPanelDescription 'pdsc' #define sgPanelSettings 'pset' #define sgcSoundCompressionType 'scmp' #define sgcSoundSampleRateType 'srat' #define sgcSoundChannelCountType 'schn' #define sgcSoundSampleSizeType 'ssiz' #define sgcSoundInputType 'sinp' #define sgcSoundGainType 'gain' #define sgcVideoHueType 'hue ' #define sgcVideoSaturationType 'satr' #define sgcVideoContrastType 'trst' #define sgcVideoSharpnessType 'shrp' #define sgcVideoBrigtnessType 'brit' #define sgcVideoBlackLevelType 'blkl' #define sgcVideoWhiteLevelType 'whtl' #define sgcVideoInputType 'vinp' #define sgcVideoFormatType 'vstd' #define sgcVideoFilterType 'vflt' #define sgcVideoRectType 'vrct' #define sgVideoDigitizerType 'vdig' enum { noDeviceForChannel = -9400, grabTimeComplete = -9401, cantDoThatInCurrentMode = -9402, notEnoughMemoryToGrab = -9403, notEnoughDiskSpaceToGrab = -9404, couldntGetRequiredComponent = -9405, badSGChannel = -9406, seqGrabInfoNotAvailable = -9407, deviceCantMeetRequest = -9408 }; enum { kSGInitializeSelect = 0x1, kSGSetDataOutputSelect = 0x2, kSGGetDataOutputSelect = 0x3, kSGSetGWorldSelect = 0x4, kSGGetGWorldSelect = 0x5, kSGNewChannelSelect = 0x6, kSGDisposeChannelSelect = 0x7, kSGStartPreviewSelect = 0x10, kSGStartRecordSelect = 0x11, kSGIdleSelect = 0x12, kSGStopSelect = 0x13, kSGPauseSelect = 0x14, kSGPrepareSelect = 0x15, kSGReleaseSelect = 0x16, kSGGetMovieSelect = 0x17, kSGSetMaximumRecordTimeSelect = 0x18, kSGGetMaximumRecordTimeSelect = 0x19, kSGGetStorageSpaceRemainingSelect = 0x1A, kSGGetTimeRemainingSelect = 0x1B, kSGGrabPictSelect = 0x1C, kSGGetLastMovieResIDSelect = 0x1D, kSGSetFlagsSelect = 0x1E, kSGGetFlagsSelect = 0x1F, kSGSetDataProcSelect = 0x20, kSGNewChannelFromComponentSelect = 0x21, kSGDisposeDeviceListSelect = 0x22, kSGAppendDeviceListToMenuSelect = 0x23, kSGSetSettingsSelect = 0x24, kSGGetSettingsSelect = 0x25, kSGGetIndChannelSelect = 0x26, kSGUpdateSelect = 0x27, kSGGetPauseSelect = 0x28, kSGSettingsDialogSelect = 0x29, kSGGetAlignmentProcSelect = 0x2A, kSGSetChannelSettingsSelect = 0x2B, kSGGetChannelSettingsSelect = 0x2C, kSGWriteMovieDataSelect = 0x100, kSGAddFrameReferenceSelect = 0x101, kSGGetNextFrameReferenceSelect = 0x102, kSGGetTimeBaseSelect = 0x103, kSGSortDeviceListSelect = 0x104, kSGAddMovieDataSelect = 0x105, kSGChangedSourceSelect = 0x106, kSGCSetChannelUsageSelect = 0x80, kSGCGetChannelUsageSelect = 0x81, kSGCSetChannelBoundsSelect = 0x82, kSGCGetChannelBoundsSelect = 0x83, kSGCSetChannelVolumeSelect = 0x84, kSGCGetChannelVolumeSelect = 0x85, kSGCGetChannelInfoSelect = 0x86, kSGCSetChannelPlayFlagsSelect = 0x87, kSGCGetChannelPlayFlagsSelect = 0x88, kSGCSetChannelMaxFramesSelect = 0x89, kSGCGetChannelMaxFramesSelect = 0x8A, kSGCSetChannelRefConSelect = 0x8B, kSGCSetChannelClipSelect = 0x8C, kSGCGetChannelClipSelect = 0x8D, kSGCGetChannelSampleDescriptionSelect = 0x8E, kSGCGetChannelDeviceListSelect = 0x8F, kSGCSetChannelDeviceSelect = 0x90, kSGCSetChannelMatrixSelect = 0x91, kSGCGetChannelMatrixSelect = 0x92, kSGCGetChannelTimeScaleSelect = 0x93, kSGCInitChannelSelect = 0x180, kSGCWriteSamplesSelect = 0x181, kSGCGetDataRateSelect = 0x182, kSGCAlignChannelRectSelect = 0x183, kSGCPanelGetDitlSelect = 0x200, kSGCPanelGetTitleSelect = 0x201, kSGCPanelCanRunSelect = 0x202, kSGCPanelInstallSelect = 0x203, kSGCPanelEventSelect = 0x204, kSGCPanelItemSelect = 0x205, kSGCPanelRemoveSelect = 0x206, kSGCPanelSetGrabberSelect = 0x207, kSGCPanelSetResFileSelect = 0x208, kSGCPanelGetSettingsSelect = 0x209, kSGCPanelSetSettingsSelect = 0x20A, kSGCPanelValidateInputSelect = 0x20B, kSGCGetSrcVideoBoundsSelect = 0x100, kSGCSetVideoRectSelect = 0x101, kSGCGetVideoRectSelect = 0x102, kSGCGetVideoCompressorTypeSelect = 0x103, kSGCSetVideoCompressorTypeSelect = 0x104, kSGCSetVideoCompressorSelect = 0x105, kSGCGetVideoCompressorSelect = 0x106, kSGCGetVideoDigitizerComponentSelect = 0x107, kSGCSetVideoDigitizerComponentSelect = 0x108, kSGCVideoDigitizerChangedSelect = 0x109, kSGCSetVideoBottlenecksSelect = 0x10A, kSGCGetVideoBottlenecksSelect = 0x10B, kSGCGrabFrameSelect = 0x10C, kSGCGrabFrameCompleteSelect = 0x10D, kSGCDisplayFrameSelect = 0x10E, kSGCCompressFrameSelect = 0x10F, kSGCCompressFrameCompleteSelect = 0x110, kSGCAddFrameSelect = 0x111, kSGCTransferFrameForCompressSelect = 0x112, kSGCSetCompressBufferSelect = 0x113, kSGCGetCompressBufferSelect = 0x114, kSGCGetBufferInfoSelect = 0x115, kSGCSetUseScreenBufferSelect = 0x116, kSGCGetUseScreenBufferSelect = 0x117, kSGCGrabCompressCompleteSelect = 0x118, kSGCDisplayCompressSelect = 0x119, kSGCSetFrameRateSelect = 0x11A, kSGCGetFrameRateSelect = 0x11B, kSGCSetSoundInputDriverSelect = 0x100, kSGCGetSoundInputDriverSelect = 0x101, kSGCSoundInputDriverChangedSelect = 0x102, kSGCSetSoundRecordChunkSizeSelect = 0x103, kSGCGetSoundRecordChunkSizeSelect = 0x104, kSGCSetSoundInputRateSelect = 0x105, kSGCGetSoundInputRateSelect = 0x106, kSGCSetSoundInputParametersSelect = 0x107, kSGCGetSoundInputParametersSelect = 0x108 }; /* Standard type for video digitizers */ #define videoDigitizerComponentType 'vdig' #define vdigInterfaceRev 2L /* Input Format Standards */ #define ntscIn 0 /* current input format */ #define currentIn 0 /* ntsc input format */ #define palIn 1 /* pal input format */ #define secamIn 2 /* secam input format */ #define ntscReallyIn 3 /* ntsc input format */ /* Input Formats */ #define compositeIn 0 /* input is composite format */ #define sVideoIn 1 /* input is sVideo format */ #define rgbComponentIn 2 /* input is rgb component format */ /* Video Digitizer PlayThru States */ #define vdPlayThruOff 0 #define vdPlayThruOn 1 /* Input Color Space Modes */ #define vdDigitizerBW 0 /* black and white */ #define vdDigitizerRGB 1 /* rgb color */ /* Phase Lock Loop Modes */ #define vdBroadcastMode 0 /* Broadcast / Laser Disk video mode */ #define vdVTRMode 1 /* VCR / Magnetic media mode */ /* Field Select Options */ #define vdUseAnyField 0 /* Digitizers choice on field use */ #define vdUseOddField 1 /* Use odd field for half size vert and smaller */ #define vdUseEvenField 2 /* Use even field for half size vert and smaller */ /* vdig types */ #define vdTypeBasic 0 /* basic, no clipping */ #define vdTypeAlpha 1 /* supports clipping with alpha channel */ #define vdTypeMask 2 /* supports clipping with mask plane */ #define vdTypeKey 3 /* supports clipping with key color(s) */ /* Digitizer Error Codes */ #define digiUnimpErr -2201 /* feature unimplemented */ #define qtParamErr -2202 /* bad input parameter (out of range, etc) */ #define matrixErr -2203 /* bad matrix, digitizer did nothing */ #define notExactMatrix -2204 /* warning of bad matrix, digitizer did its best */ #define noMoreKeyColors -2205 /* all key indexes in use */ #define notExactSize -2206 /* Can’t do exact size requested */ #define badDepth -2207 /* Can’t digitize into this depth */ #define noDMA -2208 /* Can’t do DMA digitizing (i.e. can't go to requested dest */ #define badCallOrder -2209 /* Usually due to a status call being called prior to being setup first */ /* Digitizer Input Capability/Current Flags */ #define digiInDoesNTSC (1L<<0) /* digitizer supports NTSC input format */ #define digiInDoesPAL (1L<<1) /* digitizer supports PAL input format */ #define digiInDoesSECAM (1L<<2) /* digitizer supports SECAM input format */ #define digiInDoesGenLock (1L<<7) /* digitizer does genlock */ #define digiInDoesComposite (1L<<8) /* digitizer supports composite input type */ #define digiInDoesSVideo (1L<<9) /* digitizer supports S-Video input type */ #define digiInDoesComponent (1L<<10) /* digitizer supports component (rgb) input type */ #define digiInVTR_Broadcast (1L<<11) /* digitizer can differentiate between the two */ #define digiInDoesColor (1L<<12) /* digitizer supports color */ #define digiInDoesBW (1L<<13) /* digitizer supports black & white */ /* Digitizer Input Current Flags (these are valid only during active operating conditions) */ #define digiInSignalLock (1L<<31) /* digitizer detects input signal is locked */ /* this bit = horiz lock || vertical lock */ /* Digitizer Output Capability/Current Flags */ #define digiOutDoes1 (1L<<0) /* digitizer supports 1 bit pixels */ #define digiOutDoes2 (1L<<1) /* digitizer supports 2 bit pixels */ #define digiOutDoes4 (1L<<2) /* digitizer supports 4 bit pixels */ #define digiOutDoes8 (1L<<3) /* digitizer supports 8 bit pixels */ #define digiOutDoes16 (1L<<4) /* digitizer supports 16 bit pixels */ #define digiOutDoes32 (1L<<5) /* digitizer supports 32 bit pixels */ #define digiOutDoesDither (1L<<6) /* digitizer dithers in indexed modes */ #define digiOutDoesStretch (1L<<7) /* digitizer can arbitrarily stretch */ #define digiOutDoesShrink (1L<<8) /* digitizer can arbitrarily shrink */ #define digiOutDoesMask (1L<<9) /* digitizer can mask to clipping regions */ #define digiOutDoesDouble (1L<<11) /* digitizer can stretch to exactly double size */ #define digiOutDoesQuad (1L<<12) /* digitizer can stretch exactly quadruple size */ #define digiOutDoesQuarter (1L<<13) /* digitizer can shrink to exactly quarter size */ #define digiOutDoesSixteenth (1L<<14) /* digitizer can shrink to exactly sixteenth size */ #define digiOutDoesRotate (1L<<15) /* digitizer supports rotate transformations */ #define digiOutDoesHorizFlip (1L<<16) /* digitizer supports horizontal flips Sx < 0 */ #define digiOutDoesVertFlip (1L<<17) /* digitizer supports vertical flips Sy < 0 */ #define digiOutDoesSkew (1L<<18) /* digitizer supports skew (shear,twist) */ #define digiOutDoesBlend (1L<<19) #define digiOutDoesWarp (1L<<20) #define digiOutDoesHW_DMA (1L<<21) /* digitizer not constrained to local device */ #define digiOutDoesHWPlayThru (1L<<22) /* digitizer doesn't need time to play thru */ #define digiOutDoesILUT (1L<<23) /* digitizer does inverse LUT for index modes */ #define digiOutDoesKeyColor (1L<<24) /* digitizer does key color functions too */ #define digiOutDoesAsyncGrabs (1L<<25) /* digitizer supports async grabs */ #define digiOutDoesUnreadableScreenBits (1L<<26) /* playthru doesn't generate readable bits on screen*/ #define digiOutDoesCompress (1L<<27) /* supports alternate output data types */ #define digiOutDoesCompressOnly (1L<<28) /* can't provide raw frames anywhere */ #define digiOutDoesPlayThruDuringCompress (1L<<29) /* digi can do playthru while providing compressed data */ /* Types */ typedef ComponentInstance VideoDigitizerComponent; typedef ComponentResult VideoDigitizerError; typedef struct { short vdigType; long inputCapabilityFlags; long outputCapabilityFlags; long inputCurrentFlags; long outputCurrentFlags; short slot; /* temporary for connection purposes */ GDHandle gdh; /* temporary for digitizers that have preferred screen */ GDHandle maskgdh; /* temporary for digitizers that have mask planes */ short minDestHeight; /* Smallest resizable height */ short minDestWidth; /* Smallest resizable width */ short maxDestHeight; /* Largest resizable height */ short maxDestWidth; /* Largest resizable height */ short blendLevels; /* Number of blend levels supported (2 if 1 bit mask) */ long reserved; /* reserved */ } DigitizerInfo; typedef struct { long type; long reserved; } VdigType; typedef struct { short count; VdigType list[1]; } VdigTypeList; typedef struct { PixMapHandle dest; Point location; long reserved; } VdigBufferRec; typedef struct { short count; MatrixRecordPtr matrix; RgnHandle mask; VdigBufferRec list[1]; } VdigBufferRecList; typedef VdigBufferRecList *VdigBufferRecListPtr, **VdigBufferRecListHandle; typedef pascal void (*VdigIntProc)(long flags, long refcon); typedef struct VDCompressionList { CodecComponent codec; CodecType cType; Str63 typeName; Str63 name; long formatFlags; long compressFlags; long reserved; } VDCompressionList, *VDCompressionListPtr, **VDCompressionListHandle; enum { dmaDepth1 = 1, dmaDepth2 = 2, dmaDepth4 = 4 , dmaDepth8 = 8, dmaDepth16 = 16, dmaDepth32 = 32, dmaDepth2Gray = 64, dmaDepth4Gray = 128, dmaDepth8Gray = 256 }; // number of vdig calls enum { kvdigSelectors = 82 }; #ifdef __cplusplus extern "C" { #endif __cplusplus pascal VideoDigitizerError VDGetMaxSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *maxSrcRect) = {0x2F3C,0x6,0x1,0x7000,0xA82A}; pascal VideoDigitizerError VDGetActiveSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *activeSrcRect) = {0x2F3C,0x6,0x2,0x7000,0xA82A}; pascal VideoDigitizerError VDSetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect) = {0x2F3C,0x4,0x3,0x7000,0xA82A}; pascal VideoDigitizerError VDGetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect) = {0x2F3C,0x4,0x4,0x7000,0xA82A}; pascal VideoDigitizerError VDGetVBlankRect(VideoDigitizerComponent ci, short inputStd, Rect *vBlankRect) = {0x2F3C,0x6,0x5,0x7000,0xA82A}; pascal VideoDigitizerError VDGetMaskPixMap(VideoDigitizerComponent ci, PixMapHandle maskPixMap) = {0x2F3C,0x4,0x6,0x7000,0xA82A}; pascal VideoDigitizerError VDGetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle *dest, Rect *destRect, MatrixRecord *m, RgnHandle *mask) = {0x2F3C,0x10,0x8,0x7000,0xA82A}; pascal VideoDigitizerError VDUseThisCLUT(VideoDigitizerComponent ci, CTabHandle colorTableHandle) = {0x2F3C,0x4,0x9,0x7000,0xA82A}; pascal VideoDigitizerError VDSetInputGammaValue(VideoDigitizerComponent ci, Fixed channel1, Fixed channel2, Fixed channel3) = {0x2F3C,0xC,0xA,0x7000,0xA82A}; pascal VideoDigitizerError VDGetInputGammaValue(VideoDigitizerComponent ci, Fixed *channel1, Fixed *channel2, Fixed *channel3) = {0x2F3C,0xC,0xB,0x7000,0xA82A}; pascal VideoDigitizerError VDSetBrightness(VideoDigitizerComponent ci, unsigned short *brightness) = {0x2F3C,0x4,0xC,0x7000,0xA82A}; pascal VideoDigitizerError VDGetBrightness(VideoDigitizerComponent ci, unsigned short *brightness) = {0x2F3C,0x4,0xD,0x7000,0xA82A}; pascal VideoDigitizerError VDSetContrast(VideoDigitizerComponent ci, unsigned short *contrast) = {0x2F3C,0x4,0xE,0x7000,0xA82A}; pascal VideoDigitizerError VDSetHue(VideoDigitizerComponent ci, unsigned short *hue) = {0x2F3C,0x4,0xF,0x7000,0xA82A}; pascal VideoDigitizerError VDSetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness) = {0x2F3C,0x4,0x10,0x7000,0xA82A}; pascal VideoDigitizerError VDSetSaturation(VideoDigitizerComponent ci, unsigned short *saturation) = {0x2F3C,0x4,0x11,0x7000,0xA82A}; pascal VideoDigitizerError VDGetContrast(VideoDigitizerComponent ci, unsigned short *contrast) = {0x2F3C,0x4,0x12,0x7000,0xA82A}; pascal VideoDigitizerError VDGetHue(VideoDigitizerComponent ci, unsigned short *hue) = {0x2F3C,0x4,0x13,0x7000,0xA82A}; pascal VideoDigitizerError VDGetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness) = {0x2F3C,0x4,0x14,0x7000,0xA82A}; pascal VideoDigitizerError VDGetSaturation(VideoDigitizerComponent ci, unsigned short *saturation) = {0x2F3C,0x4,0x15,0x7000,0xA82A}; pascal VideoDigitizerError VDGrabOneFrame(VideoDigitizerComponent ci) = {0x2F3C,0,0x16,0x7000,0xA82A}; pascal VideoDigitizerError VDGetMaxAuxBuffer(VideoDigitizerComponent ci, PixMapHandle *pm, Rect *r) = {0x2F3C,0x8,0x17,0x7000,0xA82A}; pascal VideoDigitizerError VDGetDigitizerInfo(VideoDigitizerComponent ci, DigitizerInfo *info) = {0x2F3C,0x4,0x19,0x7000,0xA82A}; pascal VideoDigitizerError VDGetCurrentFlags(VideoDigitizerComponent ci, long *inputCurrentFlag, long *outputCurrentFlag) = {0x2F3C,0x8,0x1A,0x7000,0xA82A}; pascal VideoDigitizerError VDSetKeyColor(VideoDigitizerComponent ci, long index) = {0x2F3C,0x4,0x1B,0x7000,0xA82A}; pascal VideoDigitizerError VDGetKeyColor(VideoDigitizerComponent ci, long *index) = {0x2F3C,0x4,0x1C,0x7000,0xA82A}; pascal VideoDigitizerError VDAddKeyColor(VideoDigitizerComponent ci, long *index) = {0x2F3C,0x4,0x1D,0x7000,0xA82A}; pascal VideoDigitizerError VDGetNextKeyColor(VideoDigitizerComponent ci, long index) = {0x2F3C,0x4,0x1E,0x7000,0xA82A}; pascal VideoDigitizerError VDSetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB) = {0x2F3C,0x8,0x1F,0x7000,0xA82A}; pascal VideoDigitizerError VDGetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB) = {0x2F3C,0x8,0x20,0x7000,0xA82A}; pascal VideoDigitizerError VDSetDigitizerUserInterrupt(VideoDigitizerComponent ci, long flags, VdigIntProc userInterruptProc, long refcon) = {0x2F3C,0xC,0x21,0x7000,0xA82A}; pascal VideoDigitizerError VDSetInputColorSpaceMode(VideoDigitizerComponent ci, short colorSpaceMode) = {0x2F3C,0x2,0x22,0x7000,0xA82A}; pascal VideoDigitizerError VDGetInputColorSpaceMode(VideoDigitizerComponent ci, short *colorSpaceMode) = {0x2F3C,0x4,0x23,0x7000,0xA82A}; pascal VideoDigitizerError VDSetClipState(VideoDigitizerComponent ci, short clipEnable) = {0x2F3C,0x2,0x24,0x7000,0xA82A}; pascal VideoDigitizerError VDGetClipState(VideoDigitizerComponent ci, short *clipEnable) = {0x2F3C,0x4,0x25,0x7000,0xA82A}; pascal VideoDigitizerError VDSetClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion) = {0x2F3C,0x4,0x26,0x7000,0xA82A}; pascal VideoDigitizerError VDClearClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion) = {0x2F3C,0x4,0x27,0x7000,0xA82A}; pascal VideoDigitizerError VDGetCLUTInUse(VideoDigitizerComponent ci, CTabHandle *colorTableHandle) = {0x2F3C,0x4,0x28,0x7000,0xA82A}; pascal VideoDigitizerError VDSetPLLFilterType(VideoDigitizerComponent ci, short pllType) = {0x2F3C,0x2,0x29,0x7000,0xA82A}; pascal VideoDigitizerError VDGetPLLFilterType(VideoDigitizerComponent ci, short *pllType) = {0x2F3C,0x4,0x2A,0x7000,0xA82A}; pascal VideoDigitizerError VDGetMaskandValue(VideoDigitizerComponent ci, unsigned short blendLevel, long *mask, long *value ) = {0x2F3C,0xA,0x2B,0x7000,0xA82A}; pascal VideoDigitizerError VDSetMasterBlendLevel(VideoDigitizerComponent ci, unsigned short *blendLevel) = {0x2F3C,0x4,0x2C,0x7000,0xA82A}; pascal VideoDigitizerError VDSetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle dest, Rect *destRect, MatrixRecord *m, RgnHandle mask) = {0x2F3C,0x10,0x2D,0x7000,0xA82A}; pascal VideoDigitizerError VDSetPlayThruOnOff(VideoDigitizerComponent ci, short state) = {0x2F3C,0x2,0x2E,0x7000,0xA82A}; pascal VideoDigitizerError VDSetFieldPreference(VideoDigitizerComponent ci, short fieldFlag) = {0x2F3C,0x2,0x2F,0x7000,0xA82A}; pascal VideoDigitizerError VDGetFieldPreference(VideoDigitizerComponent ci, short *fieldFlag) = {0x2F3C,0x4,0x30,0x7000,0xA82A}; pascal VideoDigitizerError VDPreflightDestination(VideoDigitizerComponent ci, Rect *digitizerRect, PixMap **dest, Rect *destRect, MatrixRecord *m) = {0x2F3C,0x10,0x32,0x7000,0xA82A}; pascal VideoDigitizerError VDPreflightGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect) = {0x2F3C,0x8,0x33,0x7000,0xA82A}; pascal VideoDigitizerError VDSetPlayThruGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect) = {0x2F3C,0x8,0x34,0x7000,0xA82A}; pascal VideoDigitizerError VDSetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr inputGammaPtr) = {0x2F3C,0x4,0x35,0x7000,0xA82A}; pascal VideoDigitizerError VDGetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr *inputGammaPtr) = {0x2F3C,0x4,0x36,0x7000,0xA82A}; pascal VideoDigitizerError VDSetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel) = {0x2F3C,0x4,0x37,0x7000,0xA82A}; pascal VideoDigitizerError VDGetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel) = {0x2F3C,0x4,0x38,0x7000,0xA82A}; pascal VideoDigitizerError VDSetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel) = {0x2F3C,0x4,0x39,0x7000,0xA82A}; pascal VideoDigitizerError VDGetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel) = {0x2F3C,0x4,0x3A,0x7000,0xA82A}; pascal VideoDigitizerError VDGetVideoDefaults(VideoDigitizerComponent ci, unsigned short *blackLevel, unsigned short *whiteLevel, unsigned short *brightness, unsigned short *hue, unsigned short *saturation, unsigned short *contrast, unsigned short *sharpness) = {0x2F3C,0x1C,0x3B,0x7000,0xA82A}; pascal VideoDigitizerError VDGetNumberOfInputs(VideoDigitizerComponent ci, short *inputs) = {0x2F3C,0x4,0x3C,0x7000,0xA82A}; pascal VideoDigitizerError VDGetInputFormat(VideoDigitizerComponent ci, short input, short *format) = {0x2F3C,0x6,0x3D,0x7000,0xA82A}; pascal VideoDigitizerError VDSetInput(VideoDigitizerComponent ci, short input) = {0x2F3C,0x2,0x3E,0x7000,0xA82A}; pascal VideoDigitizerError VDGetInput(VideoDigitizerComponent ci, short *input) = {0x2F3C,0x4,0x3F,0x7000,0xA82A}; pascal VideoDigitizerError VDSetInputStandard(VideoDigitizerComponent ci, short inputStandard) = {0x2F3C,0x2,0x40,0x7000,0xA82A}; pascal VideoDigitizerError VDSetupBuffers(VideoDigitizerComponent ci, VdigBufferRecListHandle bufferList) = {0x2F3C,0x4,0x41,0x7000,0xA82A}; pascal VideoDigitizerError VDGrabOneFrameAsync(VideoDigitizerComponent ci, short buffer) = {0x2F3C,0x2,0x42,0x7000,0xA82A}; pascal VideoDigitizerError VDDone(VideoDigitizerComponent ci, short buffer) = {0x2F3C,0x2,0x43,0x7000,0xA82A}; pascal VideoDigitizerError VDSetCompression(VideoDigitizerComponent ci, OSType compressType, short depth, Rect *bounds, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate) = {0x2F3C,0x16,0x44,0x7000,0xA82A}; pascal VideoDigitizerError VDCompressOneFrameAsync(VideoDigitizerComponent ci ) = {0x2F3C,0,0x45,0x7000,0xA82A}; pascal VideoDigitizerError VDCompressDone(VideoDigitizerComponent ci, Boolean *done, Ptr *theData, long *dataSize, unsigned char *similarity, TimeRecord *t) = {0x2F3C,0x14,0x46,0x7000,0xA82A}; pascal VideoDigitizerError VDReleaseCompressBuffer(VideoDigitizerComponent ci, Ptr bufferAddr) = {0x2F3C,0x4,0x47,0x7000,0xA82A}; pascal VideoDigitizerError VDGetImageDescription(VideoDigitizerComponent ci, ImageDescriptionHandle desc) = {0x2F3C,0x4,0x48,0x7000,0xA82A}; pascal VideoDigitizerError VDResetCompressSequence(VideoDigitizerComponent ci ) = {0x2F3C,0,0x49,0x7000,0xA82A}; pascal VideoDigitizerError VDSetCompressionOnOff(VideoDigitizerComponent ci, Boolean state) = {0x2F3C,0x2,0x4A,0x7000,0xA82A}; pascal VideoDigitizerError VDGetCompressionTypes(VideoDigitizerComponent ci, VDCompressionListHandle h) = {0x2F3C,0x4,0x4B,0x7000,0xA82A}; pascal VideoDigitizerError VDSetTimeBase(VideoDigitizerComponent ci, TimeBase t) = {0x2F3C,0x4,0x4C,0x7000,0xA82A}; pascal VideoDigitizerError VDSetFrameRate(VideoDigitizerComponent ci, Fixed framesPerSecond) = {0x2F3C,0x4,0x4D,0x7000,0xA82A}; pascal VideoDigitizerError VDGetDataRate(VideoDigitizerComponent ci, long *milliSecPerFrame, Fixed *framesPerSecond, long *bytesPerSecond) = {0x2F3C,0xC,0x4E,0x7000,0xA82A}; pascal VideoDigitizerError VDGetSoundInputDriver(VideoDigitizerComponent ci, Str255 soundDriverName) = {0x2F3C,0x4,0x4F,0x7000,0xA82A}; pascal VideoDigitizerError VDGetDMADepths(VideoDigitizerComponent ci, long *depthArray, long *preferredDepth) = {0x2F3C,0x8,0x50,0x7000,0xA82A}; pascal VideoDigitizerError VDGetPreferredTimeScale(VideoDigitizerComponent ci, TimeScale *preferred) = {0x2F3C,0x4,0x51,0x7000,0xA82A}; pascal VideoDigitizerError VDReleaseAsyncBuffers(VideoDigitizerComponent ci) = {0x2F3C,0,0x52,0x7000,0xA82A}; #ifdef __cplusplus } #endif __cplusplus enum { kSelectVDGetMaxSrcRect = 0x1, kSelectVDGetActiveSrcRect = 0x2, kSelectVDSetDigitizerRect = 0x3, kSelectVDGetDigitizerRect = 0x4, kSelectVDGetVBlankRect = 0x5, kSelectVDGetMaskPixMap = 0x6, kSelectVDGetPlayThruDestination = 0x8, kSelectVDUseThisCLUT = 0x9, kSelectVDSetInputGammaValue = 0xA, kSelectVDGetInputGammaValue = 0xB, kSelectVDSetBrightness = 0xC, kSelectVDGetBrightness = 0xD, kSelectVDSetContrast = 0xE, kSelectVDSetHue = 0xF, kSelectVDSetSharpness = 0x10, kSelectVDSetSaturation = 0x11, kSelectVDGetContrast = 0x12, kSelectVDGetHue = 0x13, kSelectVDGetSharpness = 0x14, kSelectVDGetSaturation = 0x15, kSelectVDGrabOneFrame = 0x16, kSelectVDGetMaxAuxBuffer = 0x17, kSelectVDGetDigitizerInfo = 0x19, kSelectVDGetCurrentFlags = 0x1A, kSelectVDSetKeyColor = 0x1B, kSelectVDGetKeyColor = 0x1C, kSelectVDAddKeyColor = 0x1D, kSelectVDGetNextKeyColor = 0x1E, kSelectVDSetKeyColorRange = 0x1F, kSelectVDGetKeyColorRange = 0x20, kSelectVDSetDigitizerUserInterrupt = 0x21, kSelectVDSetInputColorSpaceMode = 0x22, kSelectVDGetInputColorSpaceMode = 0x23, kSelectVDSetClipState = 0x24, kSelectVDGetClipState = 0x25, kSelectVDSetClipRgn = 0x26, kSelectVDClearClipRgn = 0x27, kSelectVDGetCLUTInUse = 0x28, kSelectVDSetPLLFilterType = 0x29, kSelectVDGetPLLFilterType = 0x2A, kSelectVDGetMaskandValue = 0x2B, kSelectVDSetMasterBlendLevel = 0x2C, kSelectVDSetPlayThruDestination = 0x2D, kSelectVDSetPlayThruOnOff = 0x2E, kSelectVDSetFieldPreference = 0x2F, kSelectVDGetFieldPreference = 0x30, kSelectVDPreflightDestination = 0x32, kSelectVDPreflightGlobalRect = 0x33, kSelectVDSetPlayThruGlobalRect = 0x34, kSelectVDSetInputGammaRecord = 0x35, kSelectVDGetInputGammaRecord = 0x36, kSelectVDSetBlackLevelValue = 0x37, kSelectVDGetBlackLevelValue = 0x38, kSelectVDSetWhiteLevelValue = 0x39, kSelectVDGetWhiteLevelValue = 0x3A, kSelectVDGetVideoDefaults = 0x3B, kSelectVDGetNumberOfInputs = 0x3C, kSelectVDGetInputFormat = 0x3D, kSelectVDSetInput = 0x3E, kSelectVDGetInput = 0x3F, kSelectVDSetInputStandard = 0x40, kSelectVDSetupBuffers = 0x41, kSelectVDGrabOneFrameAsync = 0x42, kSelectVDDone = 0x43, kSelectVDSetCompression = 0x44, kSelectVDCompressOneFrameAsync = 0x45, kSelectVDCompressDone = 0x46, kSelectVDReleaseCompressBuffer = 0x47, kSelectVDGetImageDescription = 0x48, kSelectVDResetCompressSequence = 0x49, kSelectVDSetCompressionOnOff = 0x4A, kSelectVDGetCompressionTypes = 0x4B, kSelectVDSetTimeBase = 0x4C, kSelectVDSetFrameRate = 0x4D, kSelectVDGetDataRate = 0x4E, kSelectVDGetSoundInputDriver = 0x4F, kSelectVDGetDMADepths = 0x50, kSelectVDGetPreferredTimeScale = 0x51, kSelectVDReleaseAsyncBuffers = 0x52 }; #define StandardCompressionType 'scdi' #define StandardCompressionSubType 'imag' typedef pascal Boolean (*SCModalFilterProcPtr)(DialogPtr theDialog, EventRecord *theEvent, short *itemHit, long refcon); typedef pascal short (*SCModalHookProcPtr)(DialogPtr theDialog, short itemHit, void *params, long refcon); // Preference flags. #define scListEveryCodec (1L<<1) #define scAllowZeroFrameRate (1L<<2) #define scAllowZeroKeyFrameRate (1L<<3) #define scShowBestDepth (1L<<4) #define scUseMovableModal (1L<<5) // Possible test flags for setting test image. #define scPreferCropping (1<<0) #define scPreferScaling (1<<1) #define scPreferScalingAndCropping (scPreferScaling + scPreferCropping) // Dimensions of the image preview box. #define scTestImageWidth 80 #define scTestImageHeight 80 // Possible items returned by hookProc. #define scOKItem 1 #define scCancelItem 2 #define scCustomItem 3 // Result returned when user cancelled. #define scUserCancelled 1 // Component selectors #define scPositionRect 2 #define scPositionDialog 3 #define scSetTestImagePictHandle 4 #define scSetTestImagePictFile 5 #define scSetTestImagePixMap 6 #define scGetBestDeviceRect 7 #define scRequestImageSettings 10 #define scCompressImage 11 #define scCompressPicture 12 #define scCompressPictureFile 13 #define scRequestSequenceSettings 14 #define scCompressSequenceBegin 15 #define scCompressSequenceFrame 16 #define scCompressSequenceEnd 17 #define scDefaultPictHandleSettings 18 #define scDefaultPictFileSettings 19 #define scDefaultPixMapSettings 20 #define scGetInfo 21 #define scSetInfo 22 #define scNewGWorld 23 // Get/SetInfo structures. typedef struct { CodecType codecType; CodecComponent codec; short depth; CodecQ spatialQuality; } SCSpatialSettings; typedef struct { CodecQ temporalQuality; Fixed frameRate; long keyFrameRate; } SCTemporalSettings; typedef struct { long dataRate; long frameDuration; CodecQ minSpatialQuality; CodecQ minTemporalQuality; } SCDataRateSettings; typedef struct { SCModalFilterProcPtr filterProc; SCModalHookProcPtr hookProc; long refcon; Str31 customName; } SCExtendedProcs; // Get/SetInfo selectors #define scSpatialSettingsType 'sptl' // pointer to SCSpatialSettings struct #define scTemporalSettingsType 'tprl' // pointer to SCTemporalSettings struct #define scDataRateSettingsType 'drat' // pointer to SCDataRateSettings struct #define scColorTableType 'clut' // pointer to CTabHandle #define scProgressProcType 'prog' // pointer to ProgressRecord struct #define scExtendedProcsType 'xprc' // pointer to SCExtendedProcs struct #define scPreferenceFlagsType 'pref' // pointer to long #define scSettingsStateType 'ssta' // pointer to Handle #define scSequenceIDType 'sequ' // pointer to ImageSequence #define scWindowPositionType 'wndw' // pointer to Point #define scCodecFlagsType 'cflg' // pointer to CodecFlags // Result returned by Get/SetInfo when type cannot be found. #define scTypeNotFoundErr -8971 // same number as codecExtensionNotFoundErr #ifdef __cplusplus extern "C" { #endif pascal ComponentResult SCPositionRect(ComponentInstance ci,Rect *rp,Point *where) = {0x2F3C,0x8,0x2,0x7000,0xA82A}; pascal ComponentResult SCPositionDialog(ComponentInstance ci,short id,Point *where) = {0x2F3C,0x6,0x3,0x7000,0xA82A}; pascal ComponentResult SCSetTestImagePictHandle(ComponentInstance ci, PicHandle testPict, Rect *testRect, short testFlags) = {0x2F3C,0xA,0x4,0x7000,0xA82A}; pascal ComponentResult SCSetTestImagePictFile(ComponentInstance ci, short testFileRef, Rect *testRect, short testFlags) = {0x2F3C,0x8,0x5,0x7000,0xA82A}; pascal ComponentResult SCSetTestImagePixMap(ComponentInstance ci, PixMapHandle testPixMap, Rect *testRect, short testFlags) = {0x2F3C,0xA,0x6,0x7000,0xA82A}; pascal ComponentResult SCGetBestDeviceRect(ComponentInstance ci, Rect *r) = {0x2F3C,0x4,0x7,0x7000,0xA82A}; pascal ComponentResult SCRequestImageSettings(ComponentInstance ci) = {0x2F3C,0,0xA,0x7000,0xA82A}; pascal ComponentResult SCCompressImage(ComponentInstance ci,PixMapHandle src,Rect *srcRect,ImageDescriptionHandle *desc,Handle *data) = {0x2F3C,0x10,0xB,0x7000,0xA82A}; pascal ComponentResult SCCompressPicture(ComponentInstance ci,PicHandle srcPicture,PicHandle dstPicture) = {0x2F3C,0x8,0xC,0x7000,0xA82A}; pascal ComponentResult SCCompressPictureFile(ComponentInstance ci,short srcRefNum,short dstRefNum) = {0x2F3C,0x4,0xD,0x7000,0xA82A}; pascal ComponentResult SCRequestSequenceSettings(ComponentInstance ci) = {0x2F3C,0,0xE,0x7000,0xA82A}; pascal ComponentResult SCCompressSequenceBegin(ComponentInstance ci,PixMapHandle src,Rect *srcRect,ImageDescriptionHandle *desc) = {0x2F3C,0xC,0xF,0x7000,0xA82A}; pascal ComponentResult SCCompressSequenceFrame(ComponentInstance ci,PixMapHandle src,Rect *srcRect,Handle *data,long *dataSize,short *notSyncFlag) = {0x2F3C,0x14,0x10,0x7000,0xA82A}; pascal ComponentResult SCCompressSequenceEnd(ComponentInstance ci) = {0x2F3C,0,0x11,0x7000,0xA82A}; pascal ComponentResult SCDefaultPictHandleSettings(ComponentInstance ci,PicHandle srcPicture, short motion) = {0x2F3C,0x6,0x12,0x7000,0xA82A}; pascal ComponentResult SCDefaultPictFileSettings(ComponentInstance ci,short srcRef, short motion) = {0x2F3C,0x4,0x13,0x7000,0xA82A}; pascal ComponentResult SCDefaultPixMapSettings(ComponentInstance ci,PixMapHandle src, short motion) = {0x2F3C,0x6,0x14,0x7000,0xA82A}; pascal ComponentResult SCGetInfo(ComponentInstance ci,OSType type,void *info) = {0x2F3C,0x8,0x15,0x7000,0xA82A}; pascal ComponentResult SCSetInfo(ComponentInstance ci,OSType type,void *info) = {0x2F3C,0x8,0x16,0x7000,0xA82A}; pascal ComponentResult SCNewGWorld(ComponentInstance ci,GWorldPtr *gwp,Rect *rp,GWorldFlags flags) = {0x2F3C,0xC,0x17,0x7000,0xA82A}; #ifdef __cplusplus } #endif // For compatibility with earlier linked StdCompression. typedef struct { long flags; CodecType theCodecType; CodecComponent theCodec; CodecQ spatialQuality; CodecQ temporalQuality; short depth; Fixed frameRate; long keyFrameRate; long reserved1; long reserved2; } SCParams; #define scGetCompression 1 #define scShowMotionSettings (1L<<0) #define scSettingsChangedItem -1 #ifdef __cplusplus extern "C" { #endif pascal ComponentInstance OpenStdCompression(void); pascal ComponentResult SCGetCompressionExtended(ComponentInstance ci,SCParams *params,Point where, SCModalFilterProcPtr filterProc,SCModalHookProcPtr hookProc,long refcon,StringPtr customName) = {0x2F3C,0x18,0x1,0x7000,0xA82A}; pascal ComponentResult SCGetCompression(ComponentInstance ci,SCParams *params,Point where) = {0x42A7,0x42A7,0x42A7,0x42A7,0x2F3C,0x18,0x1,0x7000,0xA82A}; #ifdef __cplusplus } #endif typedef ComponentInstance MovieImportComponent, MovieExportComponent; #define MovieImportType 'eat ' #define MovieExportType 'spit' enum { canMovieImportHandles = 1, canMovieImportFiles = 2, hasMovieImportUserInterface = 4, canMovieExportHandles = 8, canMovieExportFiles = 16, hasMovieExportUserInterface = 32, dontAutoFileMovieImport = 64 }; enum { kMovieImportExportOpenSelect = kComponentOpenSelect, kMovieImportExportCloseSelect = kComponentCloseSelect, kMovieImportExportCanDoSelect = kComponentCanDoSelect, kMovieImportExportVersionSelect = kComponentVersionSelect, kMovieImportHandleSelect = 1, kMovieImportFileSelect = 2, kMovieImportSetFrameDurationSelect = 3, kMovieImportSetSampleDescriptionSelect = 4, kMovieImportSetMediaFileSelect = 5, kMovieImportSetDimensionsSelect = 6, kMovieImportSetChunkSizeSelect = 7, kMovieImportSetProgressProcSelect = 8, kMovieImportSetAuxiliaryDataSelect = 9, kMovieImportSetFromScrapSelect = 10, kMovieImportDoUserDialogSelect = 11, kMovieImportSetDurationSelect = 12, kMovieExportToHandleSelect = 128, kMovieExportToFileSelect = 129, kMovieExportDoUserDialogSelect = 130, kMovieExportGetAuxiliaryDataSelect = 131, kMovieExportSetProgressProcSelect = 132 }; enum { movieImportCreateTrack = 1, movieImportInParallel = 2, movieImportMustUseTrack = 4 }; enum { movieImportResultUsedMultipleTracks = 8 }; #ifdef __cplusplus extern "C" { #endif __cplusplus pascal ComponentResult MovieImportHandle(MovieImportComponent ci, Handle dataH, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags) = {0x2F3C,0x20,0x1,0x7000,0xA82A}; pascal ComponentResult MovieImportFile(MovieImportComponent ci, const FSSpec *theFile, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags) = {0x2F3C,0x20,0x2,0x7000,0xA82A}; pascal ComponentResult MovieImportSetSampleDuration(MovieImportComponent ci, TimeValue duration, TimeScale scale) = {0x2F3C,0x8,0x3,0x7000,0xA82A}; pascal ComponentResult MovieImportSetSampleDescription(MovieImportComponent ci, SampleDescriptionHandle desc, OSType mediaType) = {0x2F3C,0x8,0x4,0x7000,0xA82A}; pascal ComponentResult MovieImportSetMediaFile(MovieImportComponent ci, AliasHandle alias) = {0x2F3C,0x4,0x5,0x7000,0xA82A}; pascal ComponentResult MovieImportSetDimensions(MovieImportComponent ci, Fixed width, Fixed height) = {0x2F3C,0x8,0x6,0x7000,0xA82A}; pascal ComponentResult MovieImportSetChunkSize(MovieImportComponent ci, long chunkSize) = {0x2F3C,0x4,0x7,0x7000,0xA82A}; pascal ComponentResult MovieImportSetProgressProc(MovieImportComponent ci, MovieProgressProcPtr proc, long refcon) = {0x2F3C,0x8,0x8,0x7000,0xA82A}; pascal ComponentResult MovieImportSetAuxiliaryData(MovieImportComponent ci, Handle data, OSType handleType) = {0x2F3C,0x8,0x9,0x7000,0xA82A}; pascal ComponentResult MovieImportSetFromScrap(MovieImportComponent ci, Boolean fromScrap) = {0x2F3C,0x2,0xA,0x7000,0xA82A}; pascal ComponentResult MovieImportDoUserDialog(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *canceled) = {0x2F3C,0xC,0xB,0x7000,0xA82A}; pascal ComponentResult MovieImportSetDuration(MovieImportComponent ci, TimeValue duration) = {0x2F3C,0x4,0xC,0x7000,0xA82A}; pascal ComponentResult MovieExportToHandle(MovieExportComponent ci, Handle dataH, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration) = {0x2F3C,0x14,0x80,0x7000,0xA82A}; pascal ComponentResult MovieExportToFile(MovieExportComponent ci, const FSSpec *theFile, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration) = {0x2F3C,0x14,0x81,0x7000,0xA82A}; pascal ComponentResult MovieExportDoUserDialog(MovieExportComponent ci, const FSSpec *theFile, Handle theData, Boolean *canceled) = {0x2F3C,0xC,0x82,0x7000,0xA82A}; pascal ComponentResult MovieExportGetAuxiliaryData(MovieExportComponent ci, Handle dataH, OSType *handleType) = {0x2F3C,0x8,0x83,0x7000,0xA82A}; pascal ComponentResult MovieExportSetProgressProc(MovieExportComponent ci, MovieProgressProcPtr proc, long refcon) = {0x2F3C,0x8,0x84,0x7000,0xA82A}; #ifdef __cplusplus } #endif __cplusplus /*************** File Preview Components ***************/ typedef ComponentInstance pnotComponent; enum { pnotComponentWantsEvents = 1, pnotComponentNeedsNoCache = 2 }; enum { kPreviewOpenSelector = 0, kPreviewCloseSelector = -1, kPreviewCanDoSelector = -2, kPreviewVersionSelector = -3, kPreviewShowDataSelector = 1, kPreviewMakePreviewSelector = 2, kPreviewMakePreviewReferenceSelector = 3, kPreviewEventSelector = 4 }; #define ShowFilePreviewComponentType 'pnot' #define CreateFilePreviewrComponentType 'pmak' #ifdef __cplusplus extern "C" { #endif __cplusplus pascal ComponentResult PreviewShowData(pnotComponent p, OSType dataType, Handle data, const Rect *inHere) = {0x2F3C,0xC,0x1,0x7000,0xA82A}; pascal ComponentResult PreviewMakePreview(pnotComponent p, OSType *previewType, Handle *previewResult, const FSSpec *sourceFile, ProgressProcRecordPtr progress) = {0x2F3C,0x10,0x2,0x7000,0xA82A}; pascal ComponentResult PreviewMakePreviewReference(pnotComponent p, OSType *previewType, short *resID, const FSSpec *sourceFile) = {0x2F3C,0xC,0x3,0x7000,0xA82A}; pascal ComponentResult PreviewEvent(pnotComponent p, EventRecord *e, Boolean *handledEvent) = {0x2F3C,0x8,0x4,0x7000,0xA82A}; #ifdef __cplusplus } #endif __cplusplus #endif __QUICKTIMECOMPONENTS__