lib-of-vs-libs-QTDevWin-CIncludes-QuickTimeComponents.h / h
These are Clock procedures *
These are Progress procedures *
*************File Preview Components ***************/ typedef ComponentInstance pnotComponent; enum { pnotComponentWantsEvents = 1, pnotComponentNeedsNoCache = 2 }; enum { ShowFilePreviewComponentType = FOUR_CHAR_CODE('pnot'), CreateFilePreviewComponentType = FOUR_CHAR_CODE('pmak') }; EXTERN_API( ComponentResult ) PreviewShowData (pnotComponent p, OSType dataType, Handle data, const Rect * inHere) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) PreviewMakePreview (pnotComponent p, OSType * previewType, Handle * previewResult, const FSSpec * sourceFile, ICMProgressProcRecordPtr progress) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) PreviewMakePreviewReference (pnotComponent p, OSType * previewType, short * resID, const FSSpec * sourceFile) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0003, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) PreviewEvent (pnotComponent p, EventRecord * e, Boolean * handledEvent) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A); typedef ComponentInstance DataCompressorComponent; typedef ComponentInstance DataDecompressorComponent; typedef ComponentInstance DataCodecComponent; enum { DataCompressorComponentType = FOUR_CHAR_CODE('dcom'), DataDecompressorComponentType = FOUR_CHAR_CODE('ddec'), AppleDataCompressorSubType = FOUR_CHAR_CODE('adec'), zlibDataCompressorSubType = FOUR_CHAR_CODE('zlib') }; These are DataCodec procedures *EXTERN_API( ComponentResult ) DataCodecDecompress (DataCodecComponent dc, void * srcData, UInt32 srcSize, void * dstData, UInt32 dstBufferSize) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0001, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataCodecGetCompressBufferSize (DataCodecComponent dc, UInt32 srcSize, UInt32 * dstSize) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataCodecCompress (DataCodecComponent dc, void * srcData, UInt32 srcSize, void * dstData, UInt32 dstBufferSize, UInt32 * actualDstSize, UInt32 * decompressSlop) FIVEWORDINLINE(0x2F3C, 0x0018, 0x0003, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataCodecBeginInterruptSafe (DataCodecComponent dc, unsigned long maxSrcSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataCodecEndInterruptSafe (DataCodecComponent dc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataCodecDecompressPartial (DataCodecComponent dc, void ** next_in, unsigned long * avail_in, unsigned long * total_in, void ** next_out, unsigned long * avail_out, unsigned long * total_out, Boolean * didFinish) FIVEWORDINLINE(0x2F3C, 0x001C, 0x0006, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataCodecCompressPartial (DataCodecComponent dc, void ** next_in, unsigned long * avail_in, unsigned long * total_in, void ** next_out, unsigned long * avail_out, unsigned long * total_out, Boolean tryToFinish, Boolean * didFinish) FIVEWORDINLINE(0x2F3C, 0x001E, 0x0007, 0x7000, 0xA82A); typedef CALLBACK_API( void , DataHCompletionProcPtr )(Ptr request, long refcon, OSErr err); typedef STACK_UPP_TYPE(DataHCompletionProcPtr) DataHCompletionUPP; enum { kDataHCanRead = 1L << 0, kDataHSpecialRead = 1L << 1, kDataHSpecialReadFile = 1L << 2, kDataHCanWrite = 1L << 3, kDataHSpecialWrite = 1 << 4, kDataHSpecialWriteFile = 1 << 5, kDataHCanStreamingWrite = 1 << 6, kDataHMustCheckDataRef = 1 << 7 }; /* Data reference records for specific data ref types*/ struct HandleDataRefRecord { Handle dataHndl; }; typedef struct HandleDataRefRecord HandleDataRefRecord; typedef HandleDataRefRecord * HandleDataRefPtr; typedef HandleDataRefPtr * HandleDataRef; struct PointerDataRefRecord { void * data; Size dataLength; }; typedef struct PointerDataRefRecord PointerDataRefRecord; typedef PointerDataRefRecord * PointerDataRefPtr; typedef PointerDataRefPtr * PointerDataRef; /* Data reference extensions*/ enum { kDataRefExtensionChokeSpeed = FOUR_CHAR_CODE('chok'), kDataRefExtensionFileName = FOUR_CHAR_CODE('fnam'), kDataRefExtensionMIMEType = FOUR_CHAR_CODE('mime'), kDataRefExtensionMacOSFileType = FOUR_CHAR_CODE('ftyp'), kDataRefExtensionInitializationData = FOUR_CHAR_CODE('data'), kDataRefExtensionQuickTimeMediaType = FOUR_CHAR_CODE('mtyp') }; enum { kDataHChokeToMovieDataRate = 1 << 0, /* param is 0*/ kDataHChokeToParam = 1 << 1 /* param is bytes per second*/ }; struct DataHChokeAtomRecord { long flags; /* one of kDataHChokeTo constants*/ long param; }; typedef struct DataHChokeAtomRecord DataHChokeAtomRecord; struct DataHVolumeListRecord { short vRefNum; long flags; }; typedef struct DataHVolumeListRecord DataHVolumeListRecord; typedef DataHVolumeListRecord * DataHVolumeListPtr; typedef DataHVolumeListPtr * DataHVolumeList; enum { kDataHExtendedSchedule = FOUR_CHAR_CODE('xtnd') }; struct DataHScheduleRecord { TimeRecord timeNeededBy; long extendedID; /* always is kDataHExtendedSchedule*/ long extendedVers; /* always set to 0*/ Fixed priority; /* 100.0 or more means must have. lower numbers...*/ }; typedef struct DataHScheduleRecord DataHScheduleRecord; typedef DataHScheduleRecord * DataHSchedulePtr; /* Flags for DataHGetInfoFlags*/ enum { kDataHInfoFlagNeverStreams = 1 << 0, /* set if this data handler doesn't stream*/ kDataHInfoFlagCanUpdateDataRefs = 1 << 1, /* set if this data handler might update data reference*/ kDataHInfoFlagNeedsNetworkBandwidth = 1 << 2 /* set if this data handler may need to occupy the network*/ }; /* Types for DataHGetFileTypeOrdering*/ enum { kDataHFileTypeMacOSFileType = FOUR_CHAR_CODE('ftyp'), kDataHFileTypeExtension = FOUR_CHAR_CODE('fext'), kDataHFileTypeMIME = FOUR_CHAR_CODE('mime') }; typedef OSType * DataHFileTypeOrderingPtr; typedef DataHFileTypeOrderingPtr * DataHFileTypeOrderingHandle; EXTERN_API( ComponentResult ) DataHGetData (DataHandler dh, Handle h, long hOffset, long offset, long size) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHPutData (DataHandler dh, Handle h, long hOffset, long * offset, long size) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0003, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHFlushData (DataHandler dh) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHOpenForWrite (DataHandler dh) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHCloseForWrite (DataHandler dh) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHOpenForRead (DataHandler dh) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0008, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHCloseForRead (DataHandler dh) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0009, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHSetDataRef (DataHandler dh, Handle dataRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetDataRef (DataHandler dh, Handle * dataRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHCompareDataRef (DataHandler dh, Handle dataRef, Boolean * equal) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHTask (DataHandler dh) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHScheduleData (DataHandler dh, Ptr PlaceToPutDataPtr, long FileOffset, long DataSize, long RefCon, DataHSchedulePtr scheduleRec, DataHCompletionUPP CompletionRtn) FIVEWORDINLINE(0x2F3C, 0x0018, 0x000E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHFinishData (DataHandler dh, Ptr PlaceToPutDataPtr, Boolean Cancel) FIVEWORDINLINE(0x2F3C, 0x0006, 0x000F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHFlushCache (DataHandler dh) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHResolveDataRef (DataHandler dh, Handle theDataRef, Boolean * wasChanged, Boolean userInterfaceAllowed) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0011, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetFileSize (DataHandler dh, long * fileSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHCanUseDataRef (DataHandler dh, Handle dataRef, long * useFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0013, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetVolumeList (DataHandler dh, DataHVolumeList * volumeList) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHWrite (DataHandler dh, Ptr data, long offset, long size, DataHCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0015, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHPreextend (DataHandler dh, unsigned long maxToAdd, unsigned long * spaceAdded) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHSetFileSize (DataHandler dh, long fileSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0017, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetFreeSpace (DataHandler dh, unsigned long * freeSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHCreateFile (DataHandler dh, OSType creator, Boolean deleteExisting) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetPreferredBlockSize (DataHandler dh, long * blockSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetDeviceIndex (DataHandler dh, long * deviceIndex) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHIsStreamingDataHandler (DataHandler dh, Boolean * yes) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetDataInBuffer (DataHandler dh, long startOffset, long * size) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetScheduleAheadTime (DataHandler dh, long * millisecs) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHSetCacheSizeLimit (DataHandler dh, Size cacheSizeLimit) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetCacheSizeLimit (DataHandler dh, Size * cacheSizeLimit) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0020, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetMovie (DataHandler dh, Movie * theMovie, short * id) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHAddMovie (DataHandler dh, Movie theMovie, short * id) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0022, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHUpdateMovie (DataHandler dh, Movie theMovie, short id) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0023, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHDoesBuffer (DataHandler dh, Boolean * buffersReads, Boolean * buffersWrites) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetFileName (DataHandler dh, Str255 str) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetAvailableFileSize (DataHandler dh, long * fileSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetMacOSFileType (DataHandler dh, OSType * fileType) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetMIMEType (DataHandler dh, Str255 mimeType) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHSetDataRefWithAnchor (DataHandler dh, Handle anchorDataRef, OSType dataRefType, Handle dataRef) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0029, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetDataRefWithAnchor (DataHandler dh, Handle anchorDataRef, OSType dataRefType, Handle * dataRef) FIVEWORDINLINE(0x2F3C, 0x000C, 0x002A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHSetMacOSFileType (DataHandler dh, OSType fileType) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHSetTimeBase (DataHandler dh, TimeBase tb) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetInfoFlags (DataHandler dh, UInt32 * flags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHScheduleData64 (DataHandler dh, Ptr PlaceToPutDataPtr, const wide * FileOffset, long DataSize, long RefCon, DataHSchedulePtr scheduleRec, DataHCompletionUPP CompletionRtn) FIVEWORDINLINE(0x2F3C, 0x0018, 0x002E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHWrite64 (DataHandler dh, Ptr data, const wide * offset, long size, DataHCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 0x0014, 0x002F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetFileSize64 (DataHandler dh, wide * fileSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHPreextend64 (DataHandler dh, const wide * maxToAdd, wide * spaceAdded) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHSetFileSize64 (DataHandler dh, const wide * fileSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0032, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetFreeSpace64 (DataHandler dh, wide * freeSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0033, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHAppend64 (DataHandler dh, void * data, wide * fileOffset, unsigned long size) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0034, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHReadAsync (DataHandler dh, void * dataPtr, UInt32 dataSize, const wide * dataOffset, DataHCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0035, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHPollRead (DataHandler dh, void * dataPtr, UInt32 * dataSizeSoFar) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0036, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetDataAvailability (DataHandler dh, long offset, long len, long * missing_offset, long * missing_len) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0037, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetFileSizeAsync (DataHandler dh, wide * fileSize, DataHCompletionUPP completionRtn, long refCon) FIVEWORDINLINE(0x2F3C, 0x000C, 0x003A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetDataRefAsType (DataHandler dh, OSType requestedType, Handle * dataRef) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHSetDataRefExtension (DataHandler dh, Handle extension, OSType idType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetDataRefExtension (DataHandler dh, Handle * extension, OSType idType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetMovieWithFlags (DataHandler dh, Movie * theMovie, short * id, short flags) FIVEWORDINLINE(0x2F3C, 0x000A, 0x003E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetFileTypeOrdering (DataHandler dh, DataHFileTypeOrderingHandle * orderingListHandle) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0040, 0x7000, 0xA82A); /* flags for DataHCreateFileWithFlags*/ enum { kDataHCreateFileButDontCreateResFile = (1L << 0) }; EXTERN_API( ComponentResult ) DataHCreateFileWithFlags (DataHandler dh, OSType creator, Boolean deleteExisting, UInt32 flags) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0041, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetMIMETypeAsync (DataHandler dh, Str255 mimeType, DataHCompletionUPP completionRtn, long refCon) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0042, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetInfo (DataHandler dh, OSType what, void * info) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0043, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHSetIdleManager (DataHandler dh, IdleManager im) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0044, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHDeleteFile (DataHandler dh) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0045, 0x7000, 0xA82A); enum { kDataHMovieUsageDoAppendMDAT = 1L << 0 /* if set, datahandler should append wide and mdat atoms in append call*/ }; EXTERN_API( ComponentResult ) DataHSetMovieUsageFlags (DataHandler dh, long flags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0046, 0x7000, 0xA82A); enum { kDataHTempUseSameDirectory = 1L << 0, /* temp data ref should be in same directory as current data ref (vs. in temporary directory)*/ kDataHTempUseSameVolume = 1L << 1, /* temp data ref should be on same volume as current data ref (vs. find "best" volume)*/ kDataHTempCreateFile = 1L << 2, /* create the file*/ kDataHTempOpenFile = 1L << 3 /* open temporary file for write (kDataHTempCreateFile must be passed, too)*/ }; EXTERN_API( ComponentResult ) DataHUseTemporaryDataRef (DataHandler dh, long inFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0047, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHGetTemporaryDataRefCapabilities (DataHandler dh, long * outUnderstoodFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0048, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHRenameFile (DataHandler dh, Handle newDataRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0049, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHPlaybackHints (DataHandler dh, long flags, unsigned long minFileOffset, unsigned long maxFileOffset, long bytesPerSecond) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0103, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) DataHPlaybackHints64 (DataHandler dh, long flags, const wide * minFileOffset, const wide * maxFileOffset, long bytesPerSecond) FIVEWORDINLINE(0x2F3C, 0x0010, 0x010E, 0x7000, 0xA82A); /* Symbolic constants for DataHGetDataRate*/ enum { kDataHGetDataRateInfiniteRate = 0x7FFFFFFF /* all the data arrived instantaneously*/ }; EXTERN_API( ComponentResult ) DataHGetDataRate (DataHandler dh, long flags, long * bytesPerSecond) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0110, 0x7000, 0xA82A); /* Flags for DataHSetTimeHints*/ enum { kDataHSetTimeHintsSkipBandwidthRequest = 1 << 0 /* set if this data handler should use the network without requesting bandwidth*/ }; EXTERN_API( ComponentResult ) DataHSetTimeHints (DataHandler dh, long flags, long bandwidthPriority, TimeScale scale, TimeValue minTime, TimeValue maxTime) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0111, 0x7000, 0xA82A); /* Standard type for video digitizers */ enum { videoDigitizerComponentType = FOUR_CHAR_CODE('vdig'), vdigInterfaceRev = 2 }; /* Input Format Standards */ enum { ntscIn = 0, /* current input format */ currentIn = 0, /* ntsc input format */ palIn = 1, /* pal input format */ secamIn = 2, /* secam input format */ ntscReallyIn = 3 /* ntsc input format */ }; /* Input Formats */ enum { compositeIn = 0, /* input is composite format */ sVideoIn = 1, /* input is sVideo format */ rgbComponentIn = 2, /* input is rgb component format */ rgbComponentSyncIn = 3, /* input is rgb component format (sync on green?)*/ yuvComponentIn = 4, /* input is yuv component format */ yuvComponentSyncIn = 5, /* input is yuv component format (sync on green?) */ tvTunerIn = 6, sdiIn = 7 }; /* Video Digitizer PlayThru States */ enum { vdPlayThruOff = 0, vdPlayThruOn = 1 }; /* Input Color Space Modes */ enum { vdDigitizerBW = 0, /* black and white */ vdDigitizerRGB = 1 /* rgb color */ }; /* Phase Lock Loop Modes */ enum { vdBroadcastMode = 0, /* Broadcast / Laser Disk video mode */ vdVTRMode = 1 /* VCR / Magnetic media mode */ }; /* Field Select Options */ enum { vdUseAnyField = 0, /* Digitizers choice on field use */ vdUseOddField = 1, /* Use odd field for half size vert and smaller */ vdUseEvenField = 2 /* Use even field for half size vert and smaller */ }; /* vdig types */ enum { vdTypeBasic = 0, /* basic, no clipping */ vdTypeAlpha = 1, /* supports clipping with alpha channel */ vdTypeMask = 2, /* supports clipping with mask plane */ vdTypeKey = 3 /* supports clipping with key color(s) */ }; /* Digitizer Input Capability/Current Flags */ enum { digiInDoesNTSC = 1L << 0, /* digitizer supports NTSC input format */ digiInDoesPAL = 1L << 1, /* digitizer supports PAL input format */ digiInDoesSECAM = 1L << 2, /* digitizer supports SECAM input format */ digiInDoesGenLock = 1L << 7, /* digitizer does genlock */ digiInDoesComposite = 1L << 8, /* digitizer supports composite input type */ digiInDoesSVideo = 1L << 9, /* digitizer supports S-Video input type */ digiInDoesComponent = 1L << 10, /* digitizer supports component = rgb, input type */ digiInVTR_Broadcast = 1L << 11, /* digitizer can differentiate between the two */ digiInDoesColor = 1L << 12, /* digitizer supports color */ digiInDoesBW = 1L << 13, /* digitizer supports black & white */ /* Digitizer Input Current Flags = these are valid only during active operating conditions, */ digiInSignalLock = 1L << 31 /* digitizer detects input signal is locked, this bit = horiz lock || vertical lock */ }; /* Digitizer Output Capability/Current Flags */ enum { digiOutDoes1 = 1L << 0, /* digitizer supports 1 bit pixels */ digiOutDoes2 = 1L << 1, /* digitizer supports 2 bit pixels */ digiOutDoes4 = 1L << 2, /* digitizer supports 4 bit pixels */ digiOutDoes8 = 1L << 3, /* digitizer supports 8 bit pixels */ digiOutDoes16 = 1L << 4, /* digitizer supports 16 bit pixels */ digiOutDoes32 = 1L << 5, /* digitizer supports 32 bit pixels */ digiOutDoesDither = 1L << 6, /* digitizer dithers in indexed modes */ digiOutDoesStretch = 1L << 7, /* digitizer can arbitrarily stretch */ digiOutDoesShrink = 1L << 8, /* digitizer can arbitrarily shrink */ digiOutDoesMask = 1L << 9, /* digitizer can mask to clipping regions */ digiOutDoesDouble = 1L << 11, /* digitizer can stretch to exactly double size */ digiOutDoesQuad = 1L << 12, /* digitizer can stretch exactly quadruple size */ digiOutDoesQuarter = 1L << 13, /* digitizer can shrink to exactly quarter size */ digiOutDoesSixteenth = 1L << 14, /* digitizer can shrink to exactly sixteenth size */ digiOutDoesRotate = 1L << 15, /* digitizer supports rotate transformations */ digiOutDoesHorizFlip = 1L << 16, /* digitizer supports horizontal flips Sx < 0 */ digiOutDoesVertFlip = 1L << 17, /* digitizer supports vertical flips Sy < 0 */ digiOutDoesSkew = 1L << 18, /* digitizer supports skew = shear,twist, */ digiOutDoesBlend = 1L << 19, digiOutDoesWarp = 1L << 20, digiOutDoesHW_DMA = 1L << 21, /* digitizer not constrained to local device */ digiOutDoesHWPlayThru = 1L << 22, /* digitizer doesn't need time to play thru */ digiOutDoesILUT = 1L << 23, /* digitizer does inverse LUT for index modes */ digiOutDoesKeyColor = 1L << 24, /* digitizer does key color functions too */ digiOutDoesAsyncGrabs = 1L << 25, /* digitizer supports async grabs */ digiOutDoesUnreadableScreenBits = 1L << 26, /* playthru doesn't generate readable bits on screen*/ digiOutDoesCompress = 1L << 27, /* supports alternate output data types */ digiOutDoesCompressOnly = 1L << 28, /* can't provide raw frames anywhere */ digiOutDoesPlayThruDuringCompress = 1L << 29, /* digi can do playthru while providing compressed data */ digiOutDoesCompressPartiallyVisible = 1L << 30, /* digi doesn't need all bits visible on screen to do hardware compress */ digiOutDoesNotNeedCopyOfCompressData = 1L << 31 /* digi doesn't need any bufferization when providing compressed data */ }; /* Types */ typedef ComponentInstance VideoDigitizerComponent; typedef ComponentResult VideoDigitizerError; struct DigitizerInfo { 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 width */ short blendLevels; /* Number of blend levels supported (2 if 1 bit mask) */ long reserved; /* reserved */ }; typedef struct DigitizerInfo DigitizerInfo; struct VdigType { long digType; long reserved; }; typedef struct VdigType VdigType; struct VdigTypeList { short count; VdigType list[1]; }; typedef struct VdigTypeList VdigTypeList; struct VdigBufferRec { PixMapHandle dest; Point location; long reserved; }; typedef struct VdigBufferRec VdigBufferRec; struct VdigBufferRecList { short count; MatrixRecordPtr matrix; RgnHandle mask; VdigBufferRec list[1]; }; typedef struct VdigBufferRecList VdigBufferRecList; typedef VdigBufferRecList * VdigBufferRecListPtr; typedef VdigBufferRecListPtr * VdigBufferRecListHandle; typedef CALLBACK_API( void , VdigIntProcPtr )(long flags, long refcon); typedef STACK_UPP_TYPE(VdigIntProcPtr) VdigIntUPP; struct VDCompressionList { CodecComponent codec; CodecType cType; Str63 typeName; Str63 name; long formatFlags; long compressFlags; long reserved; }; typedef struct VDCompressionList VDCompressionList; typedef VDCompressionList * VDCompressionListPtr; typedef VDCompressionListPtr * VDCompressionListHandle; enum { dmaDepth1 = 1, dmaDepth2 = 2, dmaDepth4 = 4, dmaDepth8 = 8, dmaDepth16 = 16, dmaDepth32 = 32, dmaDepth2Gray = 64, dmaDepth4Gray = 128, dmaDepth8Gray = 256 }; enum { kVDIGControlledFrameRate = -1 }; EXTERN_API( VideoDigitizerError ) VDGetMaxSrcRect (VideoDigitizerComponent ci, short inputStd, Rect * maxSrcRect) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0001, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetActiveSrcRect (VideoDigitizerComponent ci, short inputStd, Rect * activeSrcRect) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetDigitizerRect (VideoDigitizerComponent ci, Rect * digitizerRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetDigitizerRect (VideoDigitizerComponent ci, Rect * digitizerRect) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetVBlankRect (VideoDigitizerComponent ci, short inputStd, Rect * vBlankRect) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0005, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetMaskPixMap (VideoDigitizerComponent ci, PixMapHandle maskPixMap) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetPlayThruDestination (VideoDigitizerComponent ci, PixMapHandle * dest, Rect * destRect, MatrixRecord * m, RgnHandle * mask) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0008, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDUseThisCLUT (VideoDigitizerComponent ci, CTabHandle colorTableHandle) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0009, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetInputGammaValue (VideoDigitizerComponent ci, Fixed channel1, Fixed channel2, Fixed channel3) FIVEWORDINLINE(0x2F3C, 0x000C, 0x000A, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetInputGammaValue (VideoDigitizerComponent ci, Fixed * channel1, Fixed * channel2, Fixed * channel3) FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetBrightness (VideoDigitizerComponent ci, unsigned short * brightness) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetBrightness (VideoDigitizerComponent ci, unsigned short * brightness) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetContrast (VideoDigitizerComponent ci, unsigned short * contrast) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetHue (VideoDigitizerComponent ci, unsigned short * hue) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetSharpness (VideoDigitizerComponent ci, unsigned short * sharpness) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetSaturation (VideoDigitizerComponent ci, unsigned short * saturation) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetContrast (VideoDigitizerComponent ci, unsigned short * contrast) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetHue (VideoDigitizerComponent ci, unsigned short * hue) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetSharpness (VideoDigitizerComponent ci, unsigned short * sharpness) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetSaturation (VideoDigitizerComponent ci, unsigned short * saturation) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGrabOneFrame (VideoDigitizerComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0016, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetMaxAuxBuffer (VideoDigitizerComponent ci, PixMapHandle * pm, Rect * r) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetDigitizerInfo (VideoDigitizerComponent ci, DigitizerInfo * info) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetCurrentFlags (VideoDigitizerComponent ci, long * inputCurrentFlag, long * outputCurrentFlag) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001A, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetKeyColor (VideoDigitizerComponent ci, long index) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetKeyColor (VideoDigitizerComponent ci, long * index) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDAddKeyColor (VideoDigitizerComponent ci, long * index) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetNextKeyColor (VideoDigitizerComponent ci, long index) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetKeyColorRange (VideoDigitizerComponent ci, RGBColor * minRGB, RGBColor * maxRGB) FIVEWORDINLINE(0x2F3C, 0x0008, 0x001F, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetKeyColorRange (VideoDigitizerComponent ci, RGBColor * minRGB, RGBColor * maxRGB) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetDigitizerUserInterrupt (VideoDigitizerComponent ci, long flags, VdigIntUPP userInterruptProc, long refcon) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0021, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetInputColorSpaceMode (VideoDigitizerComponent ci, short colorSpaceMode) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0022, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetInputColorSpaceMode (VideoDigitizerComponent ci, short * colorSpaceMode) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0023, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetClipState (VideoDigitizerComponent ci, short clipEnable) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0024, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetClipState (VideoDigitizerComponent ci, short * clipEnable) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetClipRgn (VideoDigitizerComponent ci, RgnHandle clipRegion) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDClearClipRgn (VideoDigitizerComponent ci, RgnHandle clipRegion) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetCLUTInUse (VideoDigitizerComponent ci, CTabHandle * colorTableHandle) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetPLLFilterType (VideoDigitizerComponent ci, short pllType) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0029, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetPLLFilterType (VideoDigitizerComponent ci, short * pllType) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetMaskandValue (VideoDigitizerComponent ci, unsigned short blendLevel, long * mask, long * value) FIVEWORDINLINE(0x2F3C, 0x000A, 0x002B, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetMasterBlendLevel (VideoDigitizerComponent ci, unsigned short * blendLevel) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetPlayThruDestination (VideoDigitizerComponent ci, PixMapHandle dest, RectPtr destRect, MatrixRecordPtr m, RgnHandle mask) FIVEWORDINLINE(0x2F3C, 0x0010, 0x002D, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetPlayThruOnOff (VideoDigitizerComponent ci, short state) FIVEWORDINLINE(0x2F3C, 0x0002, 0x002E, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetFieldPreference (VideoDigitizerComponent ci, short fieldFlag) FIVEWORDINLINE(0x2F3C, 0x0002, 0x002F, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetFieldPreference (VideoDigitizerComponent ci, short * fieldFlag) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDPreflightDestination (VideoDigitizerComponent ci, Rect * digitizerRect, PixMap ** dest, RectPtr destRect, MatrixRecordPtr m) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0032, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDPreflightGlobalRect (VideoDigitizerComponent ci, GrafPtr theWindow, Rect * globalRect) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0033, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetPlayThruGlobalRect (VideoDigitizerComponent ci, GrafPtr theWindow, Rect * globalRect) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetInputGammaRecord (VideoDigitizerComponent ci, VDGamRecPtr inputGammaPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0035, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetInputGammaRecord (VideoDigitizerComponent ci, VDGamRecPtr * inputGammaPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0036, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetBlackLevelValue (VideoDigitizerComponent ci, unsigned short * blackLevel) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0037, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetBlackLevelValue (VideoDigitizerComponent ci, unsigned short * blackLevel) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0038, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetWhiteLevelValue (VideoDigitizerComponent ci, unsigned short * whiteLevel) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0039, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetWhiteLevelValue (VideoDigitizerComponent ci, unsigned short * whiteLevel) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003A, 0x7000, 0xA82A); EXTERN_API( 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) FIVEWORDINLINE(0x2F3C, 0x001C, 0x003B, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetNumberOfInputs (VideoDigitizerComponent ci, short * inputs) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003C, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetInputFormat (VideoDigitizerComponent ci, short input, short * format) FIVEWORDINLINE(0x2F3C, 0x0006, 0x003D, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetInput (VideoDigitizerComponent ci, short input) FIVEWORDINLINE(0x2F3C, 0x0002, 0x003E, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetInput (VideoDigitizerComponent ci, short * input) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003F, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetInputStandard (VideoDigitizerComponent ci, short inputStandard) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0040, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetupBuffers (VideoDigitizerComponent ci, VdigBufferRecListHandle bufferList) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0041, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGrabOneFrameAsync (VideoDigitizerComponent ci, short buffer) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0042, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDDone (VideoDigitizerComponent ci, short buffer) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0043, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetCompression (VideoDigitizerComponent ci, OSType compressType, short depth, Rect * bounds, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate) FIVEWORDINLINE(0x2F3C, 0x0016, 0x0044, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDCompressOneFrameAsync (VideoDigitizerComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0045, 0x7000, 0xA82A); /* Note that UInt8* queuedFrameCount replaces Boolean* done. 0(==false) still means no frames, and 1(==true) one, but if more than one are available the number should be returned here. The value 2 previously meant more than one frame, so some VDIGs may return 2 even if more than 2 are available, and some will still return 1 as they are using the original definition */ EXTERN_API( VideoDigitizerError ) VDCompressDone (VideoDigitizerComponent ci, UInt8 * queuedFrameCount, Ptr * theData, long * dataSize, UInt8 * similarity, TimeRecord * t) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0046, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDReleaseCompressBuffer (VideoDigitizerComponent ci, Ptr bufferAddr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0047, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetImageDescription (VideoDigitizerComponent ci, ImageDescriptionHandle desc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0048, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDResetCompressSequence (VideoDigitizerComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0049, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetCompressionOnOff (VideoDigitizerComponent ci, Boolean state) FIVEWORDINLINE(0x2F3C, 0x0002, 0x004A, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetCompressionTypes (VideoDigitizerComponent ci, VDCompressionListHandle h) FIVEWORDINLINE(0x2F3C, 0x0004, 0x004B, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetTimeBase (VideoDigitizerComponent ci, TimeBase t) FIVEWORDINLINE(0x2F3C, 0x0004, 0x004C, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetFrameRate (VideoDigitizerComponent ci, Fixed framesPerSecond) FIVEWORDINLINE(0x2F3C, 0x0004, 0x004D, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetDataRate (VideoDigitizerComponent ci, long * milliSecPerFrame, Fixed * framesPerSecond, long * bytesPerSecond) FIVEWORDINLINE(0x2F3C, 0x000C, 0x004E, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetSoundInputDriver (VideoDigitizerComponent ci, Str255 soundDriverName) FIVEWORDINLINE(0x2F3C, 0x0004, 0x004F, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetDMADepths (VideoDigitizerComponent ci, long * depthArray, long * preferredDepth) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0050, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetPreferredTimeScale (VideoDigitizerComponent ci, TimeScale * preferred) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0051, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDReleaseAsyncBuffers (VideoDigitizerComponent ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0052, 0x7000, 0xA82A); /* 83 is reserved for compatibility reasons */ EXTERN_API( VideoDigitizerError ) VDSetDataRate (VideoDigitizerComponent ci, long bytesPerSecond) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0054, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetTimeCode (VideoDigitizerComponent ci, TimeRecord * atTime, void * timeCodeFormat, void * timeCodeTime) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0055, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDUseSafeBuffers (VideoDigitizerComponent ci, Boolean useSafeBuffers) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0056, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetSoundInputSource (VideoDigitizerComponent ci, long videoInput, long * soundInput) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0057, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetCompressionTime (VideoDigitizerComponent ci, OSType compressionType, short depth, Rect * srcRect, CodecQ * spatialQuality, CodecQ * temporalQuality, unsigned long * compressTime) FIVEWORDINLINE(0x2F3C, 0x0016, 0x0058, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetPreferredPacketSize (VideoDigitizerComponent ci, long preferredPacketSizeInBytes) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0059, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetPreferredImageDimensions (VideoDigitizerComponent ci, long width, long height) FIVEWORDINLINE(0x2F3C, 0x0008, 0x005A, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetPreferredImageDimensions (VideoDigitizerComponent ci, long * width, long * height) FIVEWORDINLINE(0x2F3C, 0x0008, 0x005B, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDGetInputName (VideoDigitizerComponent ci, long videoInput, Str255 name) FIVEWORDINLINE(0x2F3C, 0x0008, 0x005C, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDSetDestinationPort (VideoDigitizerComponent ci, CGrafPtr destPort) FIVEWORDINLINE(0x2F3C, 0x0004, 0x005D, 0x7000, 0xA82A); /* The following call is designed to give the VDIG a little more control over how it is presented to the User, to clarify the distinction between Devices and Inputs. Historically, the assumption has been that there is one component registered per device and the component name is displayed. This change lets a component choose its name after registration. vdDeviceFlagShowInputsAsDevices is meant for components that register once and support multiple devices The UI is clearer if these are presented as device rather than inputs, and this allows a VDIG to present itself this way without huge restructuring vdDeviceFlagHideDevice is for the kind of VDIG that registers itself, and then can register a further VDIG for each device. If no hardware is available, returning this flag will omit it from the list. This call being made is also a good time to check for hardware and register further VDIG components if needed, allowing for lazy initialization when the Application needs to find a VDIG rather than on every launch or replug. */ enum { vdDeviceFlagShowInputsAsDevices = (1 << 0), /* Tell the Panel to promote Inputs to Devices*/ vdDeviceFlagHideDevice = (1 << 1) /* Omit this Device entirely from the list*/ }; EXTERN_API( VideoDigitizerError ) VDGetDeviceNameAndFlags (VideoDigitizerComponent ci, Str255 outName, UInt32 * outNameFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x005E, 0x7000, 0xA82A); enum { vdFlagCaptureStarting = (1 << 0), /* Capture is about to start; allocate bandwidth */ vdFlagCaptureStopping = (1 << 1), /* Capture is about to stop; stop queuing frames*/ vdFlagCaptureIsForPreview = (1 << 2), /* Capture is just to screen for preview purposes*/ vdFlagCaptureIsForRecord = (1 << 3), /* Capture is going to be recorded*/ vdFlagCaptureLowLatency = (1 << 4), /* Fresh frames are more important than delivering every frame - don't queue too much*/ vdFlagCaptureAlwaysUseTimeBase = (1 << 5), /* Use the timebase for every frame; don't worry about making durations uniform*/ vdFlagCaptureSetSettingsBegin = (1 << 6), /* A series of calls are about to be made to restore settings.*/ vdFlagCaptureSetSettingsEnd = (1 << 7) /* Finished restoring settings; any set calls after this are from the app or UI*/ }; EXTERN_API( VideoDigitizerError ) VDCaptureStateChanging (VideoDigitizerComponent ci, UInt32 inStateFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x005F, 0x7000, 0xA82A); /* These UniqueID calls are so that the VDIG can give the SG information enabling it to restore a particular configuration - choose a particular device and input from those available. For example, restoring the specific camera for a set of several hot-plugged FireWire cameras the caller can pass nil if it is not interested in one of the IDs returning 0 in an ID means you don't have one */ EXTERN_API( VideoDigitizerError ) VDGetUniqueIDs (VideoDigitizerComponent ci, UInt64 * outDeviceID, UInt64 * outInputID) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0060, 0x7000, 0xA82A); /* Note this is a 'Select' not a 'Set' - the assumption is that the Unique ID is a function of the hardware and not modifiable by the calling application. Either a nil pointer or 0 an the ID means don't care. return vdDontHaveThatUniqueIDErr if your device doesn't have a match. */ EXTERN_API( VideoDigitizerError ) VDSelectUniqueIDs (VideoDigitizerComponent ci, const UInt64 * inDeviceID, const UInt64 * inInputID) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0061, 0x7000, 0xA82A); /* IIDC (Instrumentation & Industrial Digital Camera) Video Digitizers Video Digitizers of subtype vdSubtypeIIDC support FireWire cameras which conform to the "IIDC 1394-based Digital Camera Specification." */ enum { vdSubtypeIIDC = FOUR_CHAR_CODE('iidc') /* Subtype for IIDC 1394-Digital Camera video digitizer*/ }; /* vdIIDCAtomTypeFeature Parent node for the QTAtoms which describe a given feature. */ enum { vdIIDCAtomTypeFeature = FOUR_CHAR_CODE('feat') }; /* vdIIDCAtomTypeFeatureAtomTypeAndID This atom describes the feature's OSType/group/name and QTAtomType & QTAtomID needed to retrieve its settings. The contents of this atom is a VDIIDCFeatureAtomTypeAndID structure. */ enum { vdIIDCAtomTypeFeatureAtomTypeAndID = FOUR_CHAR_CODE('t&id'), vdIIDCAtomIDFeatureAtomTypeAndID = 1 }; struct VDIIDCFeatureAtomTypeAndID { OSType feature; /* OSType of feature*/ OSType group; /* OSType of group that feature is categorized into*/ Str255 name; /* Name of this feature*/ QTAtomType atomType; /* Atom type which contains feature's settings*/ QTAtomID atomID; /* Atom ID which contains feature's settings*/ }; typedef struct VDIIDCFeatureAtomTypeAndID VDIIDCFeatureAtomTypeAndID; /* IIDC Feature OSTypes*/ enum { vdIIDCFeatureHue = FOUR_CHAR_CODE('hue '), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureSaturation = FOUR_CHAR_CODE('satu'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureContrast = FOUR_CHAR_CODE('ctst'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureSharpness = FOUR_CHAR_CODE('shrp'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureBlackLevel = FOUR_CHAR_CODE('blvl'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureGain = FOUR_CHAR_CODE('gain'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureIris = FOUR_CHAR_CODE('iris'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureShutter = FOUR_CHAR_CODE('shtr'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureExposure = FOUR_CHAR_CODE('xpsr'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureWhiteBalanceU = FOUR_CHAR_CODE('whbu'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureWhiteBalanceV = FOUR_CHAR_CODE('whbv'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureGamma = FOUR_CHAR_CODE('gmma'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureTemperature = FOUR_CHAR_CODE('temp'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureZoom = FOUR_CHAR_CODE('zoom'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureFocus = FOUR_CHAR_CODE('fcus'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeaturePan = FOUR_CHAR_CODE('pan '), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureTilt = FOUR_CHAR_CODE('tilt'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureOpticalFilter = FOUR_CHAR_CODE('opft'), /* Feature's settings handled by VDIIDCFeatureSettings*/ vdIIDCFeatureTrigger = FOUR_CHAR_CODE('trgr'), /* Trigger's setttings handled by VDIIDCTriggerSettings*/ vdIIDCFeatureCaptureSize = FOUR_CHAR_CODE('cpsz'), /* Feature's settings is not defined*/ vdIIDCFeatureCaptureQuality = FOUR_CHAR_CODE('cpql') /* Feature's settings is not defined*/ }; /* IIDC Group OSTypes that features are categorized into*/ enum { vdIIDCGroupImage = FOUR_CHAR_CODE('imag'), /* Feature related to camera's image*/ vdIIDCGroupColor = FOUR_CHAR_CODE('colr'), /* Feature related to camera's color control*/ vdIIDCGroupMechanics = FOUR_CHAR_CODE('mech'), /* Feature related to camera's mechanics*/ vdIIDCGroupTrigger = FOUR_CHAR_CODE('trig') /* Feature related to camera's trigger*/ }; /* vdIIDCAtomTypeFeatureSettings This atom describes the settings for the majority of features. The contents of this atom is a VDIIDCFeatureSettings structure. */ enum { vdIIDCAtomTypeFeatureSettings = FOUR_CHAR_CODE('fstg'), vdIIDCAtomIDFeatureSettings = 1 }; struct VDIIDCFeatureCapabilities { UInt32 flags; UInt16 rawMinimum; UInt16 rawMaximum; QTFloatSingle absoluteMinimum; QTFloatSingle absoluteMaximum; }; typedef struct VDIIDCFeatureCapabilities VDIIDCFeatureCapabilities; struct VDIIDCFeatureState { UInt32 flags; QTFloatSingle value; }; typedef struct VDIIDCFeatureState VDIIDCFeatureState; struct VDIIDCFeatureSettings { VDIIDCFeatureCapabilities capabilities; VDIIDCFeatureState state; }; typedef struct VDIIDCFeatureSettings VDIIDCFeatureSettings; /* Flags for use in VDIIDCFeatureCapabilities.flags & VDIIDCFeatureState.flags When indicating capabilities, the flag being set indicates that the feature can be put into the given state. When indicating/setting state, the flag represents the current/desired state. Note that certain combinations of flags are valid for cababilities (i.e. vdIIDCFeatureFlagOn | vdIIDCFeatureFlagOff) but are mutally exclusive for state. */ enum { vdIIDCFeatureFlagOn = (1 << 0), vdIIDCFeatureFlagOff = (1 << 1), vdIIDCFeatureFlagManual = (1 << 2), vdIIDCFeatureFlagAuto = (1 << 3), vdIIDCFeatureFlagTune = (1 << 4), vdIIDCFeatureFlagRawControl = (1 << 5), vdIIDCFeatureFlagAbsoluteControl = (1 << 6) }; /* vdIIDCAtomTypeTriggerSettings This atom describes the settings for the trigger feature. The contents of this atom is a VDIIDCTriggerSettings structure. */ enum { vdIIDCAtomTypeTriggerSettings = FOUR_CHAR_CODE('tstg'), vdIIDCAtomIDTriggerSettings = 1 }; struct VDIIDCTriggerCapabilities { UInt32 flags; QTFloatSingle absoluteMinimum; QTFloatSingle absoluteMaximum; }; typedef struct VDIIDCTriggerCapabilities VDIIDCTriggerCapabilities; struct VDIIDCTriggerState { UInt32 flags; UInt16 mode2TransitionCount; UInt16 mode3FrameRateMultiplier; QTFloatSingle absoluteValue; }; typedef struct VDIIDCTriggerState VDIIDCTriggerState; struct VDIIDCTriggerSettings { VDIIDCTriggerCapabilities capabilities; VDIIDCTriggerState state; }; typedef struct VDIIDCTriggerSettings VDIIDCTriggerSettings; /* Flags for use in VDIIDCTriggerCapabilities.flags & VDIIDCTriggerState.flags When indicating capabilities, the flag being set indicates that the trigger can be put into the given state. When indicating/setting state, the flag represents the current/desired state. Note that certain combinations of flags are valid for cababilities (i.e. vdIIDCTriggerFlagOn | vdIIDCTriggerFlagOff) but are mutally exclusive for state. */ enum { vdIIDCTriggerFlagOn = (1 << 0), vdIIDCTriggerFlagOff = (1 << 1), vdIIDCTriggerFlagActiveHigh = (1 << 2), vdIIDCTriggerFlagActiveLow = (1 << 3), vdIIDCTriggerFlagMode0 = (1 << 4), vdIIDCTriggerFlagMode1 = (1 << 5), vdIIDCTriggerFlagMode2 = (1 << 6), vdIIDCTriggerFlagMode3 = (1 << 7), vdIIDCTriggerFlagRawControl = (1 << 8), vdIIDCTriggerFlagAbsoluteControl = (1 << 9) }; /* VDIIDC calls are additional calls for IIDC digitizers (vdSubtypeIIDC) These calls are only valid for video digitizers of subtype vdSubtypeIIDC. */ EXTERN_API( VideoDigitizerError ) VDIIDCGetFeatures (VideoDigitizerComponent ci, QTAtomContainer * container) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0200, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDIIDCSetFeatures (VideoDigitizerComponent ci, QTAtomContainer container) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0201, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDIIDCGetDefaultFeatures (VideoDigitizerComponent ci, QTAtomContainer * container) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0202, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDIIDCGetCSRData (VideoDigitizerComponent ci, Boolean offsetFromRegisterBase, UInt32 offset, UInt32 * data) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0203, 0x7000, 0xA82A); EXTERN_API( VideoDigitizerError ) VDIIDCSetCSRData (VideoDigitizerComponent ci, Boolean offsetFromRegisterBase, UInt32 offset, UInt32 data) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0204, 0x7000, 0xA82A); enum { xmlParseComponentType = FOUR_CHAR_CODE('pars'), xmlParseComponentSubType = FOUR_CHAR_CODE('xml ') }; enum { xmlIdentifierInvalid = 0, xmlIdentifierUnrecognized = (long)0xFFFFFFFF, xmlContentTypeInvalid = 0, xmlContentTypeElement = 1, xmlContentTypeCharData = 2 }; enum { elementFlagAlwaysSelfContained = 1L << 0, /* Element doesn't have contents or closing tag even if it doesn't end with />, as in the HTML <img> tag*/ elementFlagPreserveWhiteSpace = 1L << 1, /* Preserve whitespace in content, default is to remove it */ xmlParseFlagAllowUppercase = 1L << 0, /* Entities and attributes do not have to be lowercase (strict XML), but can be upper or mixed case as in HTML*/ xmlParseFlagAllowUnquotedAttributeValues = 1L << 1, /* Attributes values do not have to be enclosed in quotes (strict XML), but can be left unquoted if they contain no spaces*/ xmlParseFlagEventParseOnly = 1L << 2 /* Do event parsing only*/ }; enum { attributeValueKindCharString = 0, attributeValueKindInteger = 1L << 0, /* Number*/ attributeValueKindPercent = 1L << 1, /* Number or percent*/ attributeValueKindBoolean = 1L << 2, /* "true" or "false"*/ attributeValueKindOnOff = 1L << 3, /* "on" or "off"*/ attributeValueKindColor = 1L << 4, /* Either "#rrggbb" or a color name*/ attributeValueKindEnum = 1L << 5, /* one of a number of strings; the enum strings are passed as a zero-separated, double-zero-terminated C string in the attributeKindValueInfo param*/ attributeValueKindCaseSensEnum = 1L << 6, /* one of a number of strings; the enum strings are passed as for attributeValueKindEnum, but the values are case-sensitive*/ MAX_ATTRIBUTE_VALUE_KIND = attributeValueKindCaseSensEnum }; enum { nameSpaceIDNone = 0 }; /* A Parsed XML attribute value, one of number/percent, boolean/on-off, color, or enumerated type*/ union XMLAttributeValue { SInt32 number; /* The value when valueKind is attributeValueKindInteger or attributeValueKindPercent*/ Boolean boolean; /* The value when valueKind is attributeValueKindBoolean or attributeValueKindOnOff*/ RGBColor color; /* The value when valueKind is attributeValueKindColor*/ UInt32 enumType; /* The value when valueKind is attributeValueKindEnum*/ }; typedef union XMLAttributeValue XMLAttributeValue; /* An XML attribute-value pair*/ struct XMLAttribute { UInt32 identifier; /* Tokenized identifier, if the attribute name was recognized by the parser*/ char * name; /* Attribute name, Only present if identifier == xmlIdentifierUnrecognized*/ long valueKind; /* Type of parsed value, if the value was recognized and parsed; otherwise, attributeValueKindCharString*/ XMLAttributeValue value; /* Parsed attribute value*/ char * valueStr; /* Always present*/ }; typedef struct XMLAttribute XMLAttribute; typedef XMLAttribute * XMLAttributePtr; /* Forward struct declarations for recursively-defined tree structure*/ typedef struct XMLContent XMLContent; typedef XMLContent * XMLContentPtr; /* An XML Element, i.e. <element attr="value" attr="value" ...> [contents] </element> or <element attr="value" attr="value" .../> */ struct XMLElement { UInt32 identifier; /* Tokenized identifier, if the element name was recognized by the parser*/ char * name; /* Element name, only present if identifier == xmlIdentifierUnrecognized*/ XMLAttributePtr attributes; /* Array of attributes, terminated with an attribute with identifier == xmlIdentifierInvalid*/ XMLContentPtr contents; /* Array of contents, terminated with a content with kind == xmlIdentifierInvalid*/ }; typedef struct XMLElement XMLElement; typedef XMLElement * XMLElementPtr; /* The content of an XML element is a series of parts, each of which may be either another element or simply character data. */ union XMLElementContent { XMLElement element; /* The contents when the content kind is xmlContentTypeElement*/ char * charData; /* The contents when the content kind is xmlContentTypeCharData*/ }; typedef union XMLElementContent XMLElementContent; struct XMLContent { UInt32 kind; XMLElementContent actualContent; }; struct XMLDocRecord { void * xmlDataStorage; /* opaque storage*/ XMLElement rootElement; }; typedef struct XMLDocRecord XMLDocRecord; typedef XMLDocRecord * XMLDoc; /*callback routines for event parsing*/ typedef CALLBACK_API( ComponentResult , StartDocumentHandler )(long refcon); typedef CALLBACK_API( ComponentResult , EndDocumentHandler )(long refcon); typedef CALLBACK_API( ComponentResult , StartElementHandler )(const char *name, const char *const atts[], long refcon); typedef CALLBACK_API( ComponentResult , EndElementHandler )(const char *name, long refcon); typedef CALLBACK_API( ComponentResult , CharDataHandler )(const char *charData, long refcon); typedef CALLBACK_API( ComponentResult , PreprocessInstructionHandler )(const char *name, const char *const atts[], long refcon); typedef CALLBACK_API( ComponentResult , CommentHandler )(const char *comment, long refcon); typedef CALLBACK_API( ComponentResult , CDataHandler )(const char *cdata, long refcon); typedef STACK_UPP_TYPE(StartDocumentHandler) StartDocumentHandlerUPP; typedef STACK_UPP_TYPE(EndDocumentHandler) EndDocumentHandlerUPP; typedef STACK_UPP_TYPE(StartElementHandler) StartElementHandlerUPP; typedef STACK_UPP_TYPE(EndElementHandler) EndElementHandlerUPP; typedef STACK_UPP_TYPE(CharDataHandler) CharDataHandlerUPP; typedef STACK_UPP_TYPE(PreprocessInstructionHandler) PreprocessInstructionHandlerUPP; typedef STACK_UPP_TYPE(CommentHandler) CommentHandlerUPP; typedef STACK_UPP_TYPE(CDataHandler) CDataHandlerUPP; /* Parses the XML file pointed to by dataRef, returning a XMLDoc parse tree*/ EXTERN_API( ComponentResult ) XMLParseDataRef (ComponentInstance aParser, Handle dataRef, OSType dataRefType, long parseFlags, XMLDoc * document) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0001, 0x7000, 0xA82A); /* Parses the XML file pointed to by fileSpec, returning a XMLDoc parse tree*/ EXTERN_API( ComponentResult ) XMLParseFile (ComponentInstance aParser, ConstFSSpecPtr fileSpec, long parseFlags, XMLDoc * document) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0002, 0x7000, 0xA82A); /* Disposes of a XMLDoc parse tree*/ EXTERN_API( ComponentResult ) XMLParseDisposeXMLDoc (ComponentInstance aParser, XMLDoc document) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); /* Returns a more detailed description of the error and the line in which it occurred, if a file failed to parse properly. */ EXTERN_API( ComponentResult ) XMLParseGetDetailedParseError (ComponentInstance aParser, long * errorLine, StringPtr errDesc) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A); /* Tell the parser of an element to be recognized. The tokenized element unique identifier is passed in *elementID, unless *elementID is zero, whereupon a unique ID is generated and returned. Thus, a valid element identifier can never be zero. */ EXTERN_API( ComponentResult ) XMLParseAddElement (ComponentInstance aParser, char * elementName, UInt32 nameSpaceID, UInt32 * elementID, long elementFlags) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0005, 0x7000, 0xA82A); /* Tells the parser of an attribute for the specified element. The tokenized attribute unique ID is passed in *attributeID, unless *attributeID is zero, whereupon a unique ID is generated and returned. Thus, a valid attribute identifier can never be zero. */ EXTERN_API( ComponentResult ) XMLParseAddAttribute (ComponentInstance aParser, UInt32 elementID, UInt32 nameSpaceID, char * attributeName, UInt32 * attributeID) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0006, 0x7000, 0xA82A); /* Tells the parser of several attributes for the specified element. The attributes are passed as a zero-delimited, double-zero-terminated C string in attributeNames, and the attribute IDs are passed in on attributeIDs as an array; if any attributeIDs are zero, unique IDs are generated for those and returned */ EXTERN_API( ComponentResult ) XMLParseAddMultipleAttributes (ComponentInstance aParser, UInt32 elementID, UInt32 * nameSpaceIDs, char * attributeNames, UInt32 * attributeIDs) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0007, 0x7000, 0xA82A); /* Tells the parser of an attribute, which may have a particular type of value, for the specified element. Params are as in XMLParseAddAttribute, plus all the kinds of values the attribute may have are passed in attributeValueKind, and optional additional information required to tokenize the particular kind of attribute is passed in attributeValueKindInfo */ EXTERN_API( ComponentResult ) XMLParseAddAttributeAndValue (ComponentInstance aParser, UInt32 elementID, UInt32 nameSpaceID, char * attributeName, UInt32 * attributeID, UInt32 attributeValueKind, void * attributeValueKindInfo) FIVEWORDINLINE(0x2F3C, 0x0018, 0x0008, 0x7000, 0xA82A); /* Tells the parser of several attributes, which may have a particular type of value, for the specified element. Params are as in XMLParseAddMultipleAttributes, plus all the kinds of values the attributes may have are passed in attributeValueKinds, and optional additional information required to tokenize the particular kind of attributes is passed in attributeValueKindInfos */ EXTERN_API( ComponentResult ) XMLParseAddMultipleAttributesAndValues (ComponentInstance aParser, UInt32 elementID, UInt32 * nameSpaceIDs, char * attributeNames, UInt32 * attributeIDs, UInt32 * attributeValueKinds, void ** attributeValueKindInfos) FIVEWORDINLINE(0x2F3C, 0x0018, 0x0009, 0x7000, 0xA82A); /* Tells the parser that the particular attribute may have an additional kind of value, as specified by attributeValueKind and attributeValueKindInfo */ EXTERN_API( ComponentResult ) XMLParseAddAttributeValueKind (ComponentInstance aParser, UInt32 elementID, UInt32 attributeID, UInt32 attributeValueKind, void * attributeValueKindInfo) FIVEWORDINLINE(0x2F3C, 0x0010, 0x000A, 0x7000, 0xA82A); /* Tell the parser of a namespace to be recognized. The tokenized namespace unique identifier is passed in *nameSpaceID, unless *nameSpaceID is zero, whereupon a unique ID is generated and returned. Thus, a valid nameSpaceID identifier can never be zero. */ EXTERN_API( ComponentResult ) XMLParseAddNameSpace (ComponentInstance aParser, char * nameSpaceURL, UInt32 * nameSpaceID) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000B, 0x7000, 0xA82A); /* Specifies the offset and limit for reading from the dataref to be used when parsing*/ EXTERN_API( ComponentResult ) XMLParseSetOffsetAndLimit (ComponentInstance aParser, UInt32 offset, UInt32 limit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A); /* Set the event parse refcon*/ EXTERN_API( ComponentResult ) XMLParseSetEventParseRefCon (ComponentInstance aParser, long refcon) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A); /* Set the start document handler UPP for event parsing*/ EXTERN_API( ComponentResult ) XMLParseSetStartDocumentHandler (ComponentInstance aParser, StartDocumentHandlerUPP startDocument) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A); /* Set the end document handler UPP for event parsing*/ EXTERN_API( ComponentResult ) XMLParseSetEndDocumentHandler (ComponentInstance aParser, EndDocumentHandlerUPP endDocument) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A); /* Set the start element handler UPP for event parsing*/ EXTERN_API( ComponentResult ) XMLParseSetStartElementHandler (ComponentInstance aParser, StartElementHandlerUPP startElement) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A); /* Set the end element handler UPP for event parsing*/ EXTERN_API( ComponentResult ) XMLParseSetEndElementHandler (ComponentInstance aParser, EndElementHandlerUPP endElement) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A); /* Set the character data handler UPP for event parsing*/ EXTERN_API( ComponentResult ) XMLParseSetCharDataHandler (ComponentInstance aParser, CharDataHandlerUPP charData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A); /* Set the preprocess instruction handler UPP for event parsing*/ EXTERN_API( ComponentResult ) XMLParseSetPreprocessInstructionHandler (ComponentInstance aParser, PreprocessInstructionHandlerUPP preprocessInstruction) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A); /* Set the comment handler UPP for event parsing*/ EXTERN_API( ComponentResult ) XMLParseSetCommentHandler (ComponentInstance aParser, CommentHandlerUPP comment) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A); /* Set the cdata handler UPP for event parsing*/ EXTERN_API( ComponentResult ) XMLParseSetCDataHandler (ComponentInstance aParser, CDataHandlerUPP cdata) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A); /* Helper Macros These macros allow you to easily add entities and attributes to the parser in an error free manner when the identifiers are defined in a particular manner. For these to work, you must define the identifiers as follows: For entities, they must be defined as element_elementName, as in: enum { element_xml = 1, // "xml" element_head, // "head" element_body // "body" }; If the element name has characters that are illegal in an identifier, some of the macros support that, but the identifier must not contain the illegal characters: enum { element_rootlayout // "root-layout" } For attribute names, similar rules apply except that they must be defined as attr_attributeName, as in: enum { attr_src = 1, // "src" attr_href, attr_width, attr_height } Finally, the existence of local variables elementID and attributeID is required. */ /* Adds the specified element to the parser, i.e. XML_ADD_ELEMENT(head) adds the element "head" with a unique identifier of element_head */ define XML_ADD_ELEMENT_NS(elementName,nameSpaceID) elementID = GLUE2(element_,elementName); XMLParseAddElement(xmlParser, #elementName, nameSpaceID, &elementID, 0) define XML_ADD_ELEMENT(elementName) XML_ADD_ELEMENT_NS(elementName,nameSpaceIDNone) /* Adds the specified element to the parser, not using the same string to generate the identifier and the element name. Use for element names that contain characters which are illegal in identifiers, i.e XML_ADD_COMPLEX_ELEMENT("root-layout",rootlayout) adds the element "root-layout" with a unique identifier of element_rootlayout */ define XML_ADD_COMPLEX_ELEMENT_NS(elementName,elemID,nameSpaceID) elementID = GLUE2(element_,elemID); XMLParseAddElement(xmlParser, #elementName, nameSpaceID, &elementID, 0) define XML_ADD_COMPLEX_ELEMENT(elementName,elemID) XML_ADD_COMPLEX_ELEMENT_NS(elementName,elemID,nameSpaceIDNone) /* Adds the specified attribute to the current element in the parser, i.e. XML_ADD_ATTRIBUTE(src) adds the attribute "src" to the current element, and identifies it by attr_src */ define XML_ADD_ATTRIBUTE_NS(attrName,nameSpaceID) attributeID = GLUE2(attr_,attrName); XMLParseAddAttribute(xmlParser, elementID, nameSpaceID, #attrName, &attributeID); define XML_ADD_ATTRIBUTE(attrName) XML_ADD_ATTRIBUTE_NS(attrName,nameSpaceIDNone) /* Adds the specified attribute to the current element in the parser, i.e. XML_ADD_ATTRIBUTE(element_img, src) adds the attribute "src" to the element_img element, and identifies it by attr_src Adds the specified attribute to the current element in the parser, not using the same string to generate the identifier and the element name. Use for attribute names that contain characters which are illegal in identifiers, i.e XML_ADD_COMPLEX_ATTRIBUTE("http-equiv",httpequiv) adds the element "http-equiv" with a unique identifier of attr_httpequiv */ define XML_ADD_COMPLEX_ATTRIBUTE_NS(attrName,attrID,nameSpaceID) attributeID = GLUE2(attr_,attrID); XMLParseAddAttribute(xmlParser, elementID, nameSpaceID, #attrName, &attributeID); define XML_ADD_COMPLEX_ATTRIBUTE(attrName,attrID) XML_ADD_COMPLEX_ATTRIBUTE_NS(attrName,attrID,nameSpaceIDNone) define XML_ADD_ATTRIBUTE_AND_VALUE_NS(attrName,valueKind,valueKindInfo,nameSpaceID) attributeID = GLUE2(attr_,attrName); XMLParseAddAttributeAndValue(xmlParser, elementID, nameSpaceID, #attrName, &attributeID, valueKind, valueKindInfo); define XML_ADD_ATTRIBUTE_AND_VALUE(attrName,valueKind,valueKindInfo) XML_ADD_ATTRIBUTE_AND_VALUE_NS(attrName,valueKind,valueKindInfo,nameSpaceIDNone) define XML_ADD_COMPLEX_ATTRIBUTE_AND_VALUE_NS(attrName,attrID,valueKind,valueKindInfo,nameSpaceID) attributeID = GLUE2(attr_,attrID); XMLParseAddAttributeAndValue(xmlParser, elementID, nameSpaceID, #attrName, &attributeID, valueKind, valueKindInfo); define XML_ADD_COMPLEX_ATTRIBUTE_AND_VALUE(attrName,attrID,valueKind,valueKindInfo) XML_ADD_COMPLEX_ATTRIBUTE_AND_VALUE_NS(attrName,attrID,valueKind,valueKindInfo,nameSpaceIDNone) /* General Sequence Grab stuff */ typedef ComponentInstance SeqGrabComponent; typedef ComponentInstance SGChannel; enum { SeqGrabComponentType = FOUR_CHAR_CODE('barg'), SeqGrabChannelType = FOUR_CHAR_CODE('sgch'), SeqGrabPanelType = FOUR_CHAR_CODE('sgpn'), SeqGrabCompressionPanelType = FOUR_CHAR_CODE('cmpr'), SeqGrabSourcePanelType = FOUR_CHAR_CODE('sour') }; enum { seqGrabToDisk = 1, seqGrabToMemory = 2, seqGrabDontUseTempMemory = 4, seqGrabAppendToFile = 8, seqGrabDontAddMovieResource = 16, seqGrabDontMakeMovie = 32, seqGrabPreExtendFile = 64, seqGrabDataProcIsInterruptSafe = 128, seqGrabDataProcDoesOverlappingReads = 256 }; typedef unsigned long SeqGrabDataOutputEnum; enum { seqGrabRecord = 1, seqGrabPreview = 2, seqGrabPlayDuringRecord = 4, seqGrabLowLatencyCapture = 8, /* return the freshest frame possible, for live work (videoconferencing, live broadcast, live image processing) */ seqGrabAlwaysUseTimeBase = 16 /* Tell VDIGs to use TimebaseTime always, rather than creating uniform frame durations, for more accurate live sync with audio */ }; typedef unsigned long SeqGrabUsageEnum; enum { seqGrabHasBounds = 1, seqGrabHasVolume = 2, seqGrabHasDiscreteSamples = 4, seqGrabDoNotBufferizeData = 8, seqGrabCanMoveWindowWhileRecording = 16 }; typedef unsigned long SeqGrabChannelInfoEnum; struct SGOutputRecord { long data[1]; }; typedef struct SGOutputRecord SGOutputRecord; typedef SGOutputRecord * SGOutput; struct SeqGrabFrameInfo { long frameOffset; long frameTime; long frameSize; SGChannel frameChannel; long frameRefCon; }; typedef struct SeqGrabFrameInfo SeqGrabFrameInfo; typedef SeqGrabFrameInfo * SeqGrabFrameInfoPtr; struct SeqGrabExtendedFrameInfo { wide frameOffset; long frameTime; long frameSize; SGChannel frameChannel; long frameRefCon; SGOutput frameOutput; }; typedef struct SeqGrabExtendedFrameInfo SeqGrabExtendedFrameInfo; typedef SeqGrabExtendedFrameInfo * SeqGrabExtendedFrameInfoPtr; enum { grabPictOffScreen = 1, grabPictIgnoreClip = 2, grabPictCurrentImage = 4 }; enum { sgFlagControlledGrab = (1 << 0), sgFlagAllowNonRGBPixMaps = (1 << 1) }; typedef CALLBACK_API( OSErr , SGDataProcPtr )(SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType, long refCon); typedef STACK_UPP_TYPE(SGDataProcPtr) SGDataUPP; struct SGDeviceInputName { Str63 name; Handle icon; long flags; long reserved; /* zero*/ }; typedef struct SGDeviceInputName SGDeviceInputName; enum { sgDeviceInputNameFlagInputUnavailable = (1 << 0) }; struct SGDeviceInputListRecord { short count; short selectedIndex; long reserved; /* zero*/ SGDeviceInputName entry[1]; }; typedef struct SGDeviceInputListRecord SGDeviceInputListRecord; typedef SGDeviceInputListRecord * SGDeviceInputListPtr; typedef SGDeviceInputListPtr * SGDeviceInputList; struct SGDeviceName { Str63 name; Handle icon; long flags; long refCon; SGDeviceInputList inputs; /* list of inputs; formerly reserved to 0*/ }; typedef struct SGDeviceName SGDeviceName; enum { sgDeviceNameFlagDeviceUnavailable = (1 << 0), sgDeviceNameFlagShowInputsAsDevices = (1 << 1) }; struct SGDeviceListRecord { short count; short selectedIndex; long reserved; /* zero*/ SGDeviceName entry[1]; }; typedef struct SGDeviceListRecord SGDeviceListRecord; typedef SGDeviceListRecord * SGDeviceListPtr; typedef SGDeviceListPtr * SGDeviceList; enum { sgDeviceListWithIcons = (1 << 0), sgDeviceListDontCheckAvailability = (1 << 1), sgDeviceListIncludeInputs = (1 << 2) }; enum { seqGrabWriteAppend = 0, seqGrabWriteReserve = 1, seqGrabWriteFill = 2 }; enum { seqGrabUnpause = 0, seqGrabPause = 1, seqGrabPauseForMenu = 3 }; enum { channelFlagDontOpenResFile = 2, channelFlagHasDependency = 4 }; typedef CALLBACK_API( Boolean , SGModalFilterProcPtr )(DialogRef theDialog, const EventRecord *theEvent, short *itemHit, long refCon); typedef STACK_UPP_TYPE(SGModalFilterProcPtr) SGModalFilterUPP; enum { sgPanelFlagForPanel = 1 }; enum { seqGrabSettingsPreviewOnly = 1 }; enum { channelPlayNormal = 0, channelPlayFast = 1, channelPlayHighQuality = 2, channelPlayAllData = 4 }; EXTERN_API( ComponentResult ) SGInitialize (SeqGrabComponent s) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0001, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetDataOutput (SeqGrabComponent s, const FSSpec * movieFile, long whereFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetDataOutput (SeqGrabComponent s, FSSpec * movieFile, long * whereFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetGWorld (SeqGrabComponent s, CGrafPtr gp, GDHandle gd) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetGWorld (SeqGrabComponent s, CGrafPtr * gp, GDHandle * gd) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGNewChannel (SeqGrabComponent s, OSType channelType, SGChannel * ref) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0006, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGDisposeChannel (SeqGrabComponent s, SGChannel c) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGStartPreview (SeqGrabComponent s) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGStartRecord (SeqGrabComponent s) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0011, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGIdle (SeqGrabComponent s) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0012, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGStop (SeqGrabComponent s) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0013, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPause (SeqGrabComponent s, Byte pause) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0014, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPrepare (SeqGrabComponent s, Boolean prepareForPreview, Boolean prepareForRecord) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGRelease (SeqGrabComponent s) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0016, 0x7000, 0xA82A); EXTERN_API( Movie ) SGGetMovie (SeqGrabComponent s) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0017, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetMaximumRecordTime (SeqGrabComponent s, unsigned long ticks) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetMaximumRecordTime (SeqGrabComponent s, unsigned long * ticks) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetStorageSpaceRemaining (SeqGrabComponent s, unsigned long * bytes) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetTimeRemaining (SeqGrabComponent s, long * ticksLeft) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGrabPict (SeqGrabComponent s, PicHandle * p, const Rect * bounds, short offscreenDepth, long grabPictFlags) FIVEWORDINLINE(0x2F3C, 0x000E, 0x001C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetLastMovieResID (SeqGrabComponent s, short * resID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetFlags (SeqGrabComponent s, long sgFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetFlags (SeqGrabComponent s, long * sgFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetDataProc (SeqGrabComponent s, SGDataUPP proc, long refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGNewChannelFromComponent (SeqGrabComponent s, SGChannel * newChannel, Component sgChannelComponent) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGDisposeDeviceList (SeqGrabComponent s, SGDeviceList list) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0022, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGAppendDeviceListToMenu (SeqGrabComponent s, SGDeviceList list, MenuRef mh) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0023, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetSettings (SeqGrabComponent s, UserData ud, long flags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetSettings (SeqGrabComponent s, UserData * ud, long flags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0025, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetIndChannel (SeqGrabComponent s, short index, SGChannel * ref, OSType * chanType) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0026, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGUpdate (SeqGrabComponent s, RgnHandle updateRgn) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetPause (SeqGrabComponent s, Byte * paused) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A); typedef const Component * ConstComponentListPtr; EXTERN_API( ComponentResult ) SGSettingsDialog (SeqGrabComponent s, SGChannel c, short numPanels, ConstComponentListPtr panelList, long flags, SGModalFilterUPP proc, long procRefNum) FIVEWORDINLINE(0x2F3C, 0x0016, 0x0029, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetAlignmentProc (SeqGrabComponent s, ICMAlignmentProcRecordPtr alignmentProc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetChannelSettings (SeqGrabComponent s, SGChannel c, UserData ud, long flags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x002B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelSettings (SeqGrabComponent s, SGChannel c, UserData * ud, long flags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x002C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetMode (SeqGrabComponent s, Boolean * previewMode, Boolean * recordMode) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetDataRef (SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x002E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetDataRef (SeqGrabComponent s, Handle * dataRef, OSType * dataRefType, long * whereFlags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x002F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGNewOutput (SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags, SGOutput * sgOut) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0030, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGDisposeOutput (SeqGrabComponent s, SGOutput sgOut) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0031, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetOutputFlags (SeqGrabComponent s, SGOutput sgOut, long whereFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetChannelOutput (SeqGrabComponent s, SGChannel c, SGOutput sgOut) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0033, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetDataOutputStorageSpaceRemaining (SeqGrabComponent s, SGOutput sgOut, unsigned long * space) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGHandleUpdateEvent (SeqGrabComponent s, const EventRecord * event, Boolean * handled) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0035, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetOutputNextOutput (SeqGrabComponent s, SGOutput sgOut, SGOutput nextOut) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0036, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetOutputNextOutput (SeqGrabComponent s, SGOutput sgOut, SGOutput * nextOut) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0037, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetOutputMaximumOffset (SeqGrabComponent s, SGOutput sgOut, const wide * maxOffset) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0038, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetOutputMaximumOffset (SeqGrabComponent s, SGOutput sgOut, wide * maxOffset) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0039, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetOutputDataReference (SeqGrabComponent s, SGOutput sgOut, Handle * dataRef, OSType * dataRefType) FIVEWORDINLINE(0x2F3C, 0x000C, 0x003A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGWriteExtendedMovieData (SeqGrabComponent s, SGChannel c, Ptr p, long len, wide * offset, SGOutput * sgOut) FIVEWORDINLINE(0x2F3C, 0x0014, 0x003B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetStorageSpaceRemaining64 (SeqGrabComponent s, wide * bytes) FIVEWORDINLINE(0x2F3C, 0x0004, 0x003C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetDataOutputStorageSpaceRemaining64 (SeqGrabComponent s, SGOutput sgOut, wide * space) FIVEWORDINLINE(0x2F3C, 0x0008, 0x003D, 0x7000, 0xA82A); /* calls from Channel to seqGrab */ EXTERN_API( ComponentResult ) SGWriteMovieData (SeqGrabComponent s, SGChannel c, Ptr p, long len, long * offset) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0100, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGAddFrameReference (SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetNextFrameReference (SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo, TimeValue * frameDuration, long * frameNumber) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0102, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetTimeBase (SeqGrabComponent s, TimeBase * tb) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSortDeviceList (SeqGrabComponent s, SGDeviceList list) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGAddMovieData (SeqGrabComponent s, SGChannel c, Ptr p, long len, long * offset, long chRefCon, TimeValue time, short writeType) FIVEWORDINLINE(0x2F3C, 0x001A, 0x0105, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGChangedSource (SeqGrabComponent s, SGChannel c) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0106, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGAddExtendedFrameReference (SeqGrabComponent s, SeqGrabExtendedFrameInfoPtr frameInfo) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetNextExtendedFrameReference (SeqGrabComponent s, SeqGrabExtendedFrameInfoPtr frameInfo, TimeValue * frameDuration, long * frameNumber) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0108, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGAddExtendedMovieData (SeqGrabComponent s, SGChannel c, Ptr p, long len, wide * offset, long chRefCon, TimeValue time, short writeType, SGOutput * whichOutput) FIVEWORDINLINE(0x2F3C, 0x001E, 0x0109, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGAddOutputDataRefToMedia (SeqGrabComponent s, SGOutput sgOut, Media theMedia, SampleDescriptionHandle desc) FIVEWORDINLINE(0x2F3C, 0x000C, 0x010A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetSettingsSummary (SeqGrabComponent s, Handle summaryText) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A); * Sequence Grab CHANNEL Component Stuff **EXTERN_API( ComponentResult ) SGSetChannelUsage (SGChannel c, long usage) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0080, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelUsage (SGChannel c, long * usage) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0081, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetChannelBounds (SGChannel c, const Rect * bounds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0082, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelBounds (SGChannel c, Rect * bounds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0083, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetChannelVolume (SGChannel c, short volume) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0084, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelVolume (SGChannel c, short * volume) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0085, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelInfo (SGChannel c, long * channelInfo) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0086, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetChannelPlayFlags (SGChannel c, long playFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0087, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelPlayFlags (SGChannel c, long * playFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0088, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetChannelMaxFrames (SGChannel c, long frameCount) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0089, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelMaxFrames (SGChannel c, long * frameCount) FIVEWORDINLINE(0x2F3C, 0x0004, 0x008A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetChannelRefCon (SGChannel c, long refCon) FIVEWORDINLINE(0x2F3C, 0x0004, 0x008B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetChannelClip (SGChannel c, RgnHandle theClip) FIVEWORDINLINE(0x2F3C, 0x0004, 0x008C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelClip (SGChannel c, RgnHandle * theClip) FIVEWORDINLINE(0x2F3C, 0x0004, 0x008D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelSampleDescription (SGChannel c, Handle sampleDesc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x008E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelDeviceList (SGChannel c, long selectionFlags, SGDeviceList * list) FIVEWORDINLINE(0x2F3C, 0x0008, 0x008F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetChannelDevice (SGChannel c, StringPtr name) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0090, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetChannelMatrix (SGChannel c, const MatrixRecord * m) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0091, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelMatrix (SGChannel c, MatrixRecord * m) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0092, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelTimeScale (SGChannel c, TimeScale * scale) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0093, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGChannelPutPicture (SGChannel c) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0094, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGChannelSetRequestedDataRate (SGChannel c, long bytesPerSecond) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0095, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGChannelGetRequestedDataRate (SGChannel c, long * bytesPerSecond) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0096, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGChannelSetDataSourceName (SGChannel c, ConstStr255Param name, ScriptCode scriptTag) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0097, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGChannelGetDataSourceName (SGChannel c, Str255 name, ScriptCode * scriptTag) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0098, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGChannelSetCodecSettings (SGChannel c, Handle settings) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0099, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGChannelGetCodecSettings (SGChannel c, Handle * settings) FIVEWORDINLINE(0x2F3C, 0x0004, 0x009A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelTimeBase (SGChannel c, TimeBase * tb) FIVEWORDINLINE(0x2F3C, 0x0004, 0x009B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetChannelRefCon (SGChannel c, long * refCon) FIVEWORDINLINE(0x2F3C, 0x0004, 0x009C, 0x7000, 0xA82A); /* A utility call to find out the current device and input names, instead of having to call GetDeviceList and walk it yourself */ EXTERN_API( ComponentResult ) SGGetChannelDeviceAndInputNames (SGChannel c, Str255 outDeviceName, Str255 outInputName, short * outInputNumber) FIVEWORDINLINE(0x2F3C, 0x000C, 0x009D, 0x7000, 0xA82A); /* A media format independent call for this. Inputs start at 0 here (Sound starts at 1, VDIGs at 0 in direct calls) */ EXTERN_API( ComponentResult ) SGSetChannelDeviceInput (SGChannel c, short inInputNumber) FIVEWORDINLINE(0x2F3C, 0x0002, 0x009E, 0x7000, 0xA82A); /* A call to bracket SetSettings related calls, to give downstream components an opportunity to deal with the entire settings change in one go */ enum { sgSetSettingsBegin = (1 << 0), /* SGSetSettings related set calls about to start*/ sgSetSettingsEnd = (1 << 1) /* Finished SGSetSettings calls. Get ready to use the new settings*/ }; EXTERN_API( ComponentResult ) SGSetChannelSettingsStateChanging (SGChannel c, UInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x009F, 0x7000, 0xA82A); /* calls from seqGrab to Channel */ EXTERN_API( ComponentResult ) SGInitChannel (SGChannel c, SeqGrabComponent owner) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0180, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGWriteSamples (SGChannel c, Movie m, AliasHandle theFile) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0181, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetDataRate (SGChannel c, long * bytesPerSecond) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0182, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGAlignChannelRect (SGChannel c, Rect * r) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0183, 0x7000, 0xA82A); /* Dorky dialog panel calls */ EXTERN_API( ComponentResult ) SGPanelGetDitl (SeqGrabComponent s, Handle * ditl) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0200, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelGetTitle (SeqGrabComponent s, Str255 title) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0201, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelCanRun (SeqGrabComponent s, SGChannel c) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0202, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelInstall (SeqGrabComponent s, SGChannel c, DialogRef d, short itemOffset) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0203, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelEvent (SeqGrabComponent s, SGChannel c, DialogRef d, short itemOffset, const EventRecord * theEvent, short * itemHit, Boolean * handled) FIVEWORDINLINE(0x2F3C, 0x0016, 0x0204, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelItem (SeqGrabComponent s, SGChannel c, DialogRef d, short itemOffset, short itemNum) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0205, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelRemove (SeqGrabComponent s, SGChannel c, DialogRef d, short itemOffset) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0206, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelSetGrabber (SeqGrabComponent s, SeqGrabComponent sg) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0207, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelSetResFile (SeqGrabComponent s, short resRef) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0208, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelGetSettings (SeqGrabComponent s, SGChannel c, UserData * ud, long flags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0209, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelSetSettings (SeqGrabComponent s, SGChannel c, UserData ud, long flags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x020A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelValidateInput (SeqGrabComponent s, Boolean * ok) FIVEWORDINLINE(0x2F3C, 0x0004, 0x020B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGPanelSetEventFilter (SeqGrabComponent s, SGModalFilterUPP proc, long refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x020C, 0x7000, 0xA82A); /* SGPanelGetDITLForSize is used to retrieve user interface elements that fit within a specified size panel. The component should return badComponentSelector for sizes it does not support. The component is required to support kSGSmallestDITLSize, and it is recommended to support kSGLargestDITLSize. If SGPanelGetDITLForSize is unimplemented entirely, the panel is assumed to not have resizable UI elements. */ enum { kSGSmallestDITLSize = -1, /* requestedSize h and v set to this to retrieve small size*/ kSGLargestDITLSize = -2 /* requestedSize h and v set to this to retrieve large size*/ }; EXTERN_API( ComponentResult ) SGPanelGetDITLForSize (SeqGrabComponent s, Handle * ditl, Point * requestedSize) FIVEWORDINLINE(0x2F3C, 0x0008, 0x020D, 0x7000, 0xA82A); * Sequence Grab VIDEO CHANNEL Component Stuff **/* Video stuff */ struct SGCompressInfo { Ptr buffer; unsigned long bufferSize; UInt8 similarity; UInt8 reserved; }; typedef struct SGCompressInfo SGCompressInfo; typedef CALLBACK_API( ComponentResult , SGGrabBottleProcPtr )(SGChannel c, short bufferNum, long refCon); typedef CALLBACK_API( ComponentResult , SGGrabCompleteBottleProcPtr )(SGChannel c, short bufferNum, Boolean *done, long refCon); typedef CALLBACK_API( ComponentResult , SGDisplayBottleProcPtr )(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon); typedef CALLBACK_API( ComponentResult , SGCompressBottleProcPtr )(SGChannel c, short bufferNum, long refCon); typedef CALLBACK_API( ComponentResult , SGCompressCompleteBottleProcPtr )(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci, long refCon); typedef CALLBACK_API( ComponentResult , SGAddFrameBottleProcPtr )(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci, long refCon); typedef CALLBACK_API( ComponentResult , SGTransferFrameBottleProcPtr )(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon); /* Note that UInt8 *queuedFrameCount replaces Boolean *done. 0(==false) still means no frames, and 1(==true) one, but if more than one are available the number should be returned here. The value 2 previously meant more than one frame, so some VDIGs may return 2 even if more than 2 are available, and some will still return 1 as they are using the original definition. */ typedef CALLBACK_API( ComponentResult , SGGrabCompressCompleteBottleProcPtr )(SGChannel c, UInt8 *queuedFrameCount, SGCompressInfo *ci, TimeRecord *t, long refCon); typedef CALLBACK_API( ComponentResult , SGDisplayCompressBottleProcPtr )(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn, long refCon); typedef STACK_UPP_TYPE(SGGrabBottleProcPtr) SGGrabBottleUPP; typedef STACK_UPP_TYPE(SGGrabCompleteBottleProcPtr) SGGrabCompleteBottleUPP; typedef STACK_UPP_TYPE(SGDisplayBottleProcPtr) SGDisplayBottleUPP; typedef STACK_UPP_TYPE(SGCompressBottleProcPtr) SGCompressBottleUPP; typedef STACK_UPP_TYPE(SGCompressCompleteBottleProcPtr) SGCompressCompleteBottleUPP; typedef STACK_UPP_TYPE(SGAddFrameBottleProcPtr) SGAddFrameBottleUPP; typedef STACK_UPP_TYPE(SGTransferFrameBottleProcPtr) SGTransferFrameBottleUPP; typedef STACK_UPP_TYPE(SGGrabCompressCompleteBottleProcPtr) SGGrabCompressCompleteBottleUPP; typedef STACK_UPP_TYPE(SGDisplayCompressBottleProcPtr) SGDisplayCompressBottleUPP; struct VideoBottles { short procCount; SGGrabBottleUPP grabProc; SGGrabCompleteBottleUPP grabCompleteProc; SGDisplayBottleUPP displayProc; SGCompressBottleUPP compressProc; SGCompressCompleteBottleUPP compressCompleteProc; SGAddFrameBottleUPP addFrameProc; SGTransferFrameBottleUPP transferFrameProc; SGGrabCompressCompleteBottleUPP grabCompressCompleteProc; SGDisplayCompressBottleUPP displayCompressProc; }; typedef struct VideoBottles VideoBottles; EXTERN_API( ComponentResult ) SGGetSrcVideoBounds (SGChannel c, Rect * r) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetVideoRect (SGChannel c, const Rect * r) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetVideoRect (SGChannel c, Rect * r) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetVideoCompressorType (SGChannel c, OSType * compressorType) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetVideoCompressorType (SGChannel c, OSType compressorType) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetVideoCompressor (SGChannel c, short depth, CompressorComponent compressor, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate) FIVEWORDINLINE(0x2F3C, 0x0012, 0x0105, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetVideoCompressor (SGChannel c, short * depth, CompressorComponent * compressor, CodecQ * spatialQuality, CodecQ * temporalQuality, long * keyFrameRate) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0106, 0x7000, 0xA82A); EXTERN_API( ComponentInstance ) SGGetVideoDigitizerComponent (SGChannel c) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0107, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetVideoDigitizerComponent (SGChannel c, ComponentInstance vdig) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGVideoDigitizerChanged (SGChannel c) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0109, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetVideoBottlenecks (SGChannel c, VideoBottles * vb) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetVideoBottlenecks (SGChannel c, VideoBottles * vb) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGrabFrame (SGChannel c, short bufferNum) FIVEWORDINLINE(0x2F3C, 0x0002, 0x010C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGrabFrameComplete (SGChannel c, short bufferNum, Boolean * done) FIVEWORDINLINE(0x2F3C, 0x0006, 0x010D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGDisplayFrame (SGChannel c, short bufferNum, const MatrixRecord * mp, RgnHandle clipRgn) FIVEWORDINLINE(0x2F3C, 0x000A, 0x010E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGCompressFrame (SGChannel c, short bufferNum) FIVEWORDINLINE(0x2F3C, 0x0002, 0x010F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGCompressFrameComplete (SGChannel c, short bufferNum, Boolean * done, SGCompressInfo * ci) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0110, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGAddFrame (SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo * ci) FIVEWORDINLINE(0x2F3C, 0x000E, 0x0111, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGTransferFrameForCompress (SGChannel c, short bufferNum, const MatrixRecord * mp, RgnHandle clipRgn) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0112, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetCompressBuffer (SGChannel c, short depth, const Rect * compressSize) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0113, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetCompressBuffer (SGChannel c, short * depth, Rect * compressSize) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0114, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetBufferInfo (SGChannel c, short bufferNum, PixMapHandle * bufferPM, Rect * bufferRect, GWorldPtr * compressBuffer, Rect * compressBufferRect) FIVEWORDINLINE(0x2F3C, 0x0012, 0x0115, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetUseScreenBuffer (SGChannel c, Boolean useScreenBuffer) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0116, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetUseScreenBuffer (SGChannel c, Boolean * useScreenBuffer) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0117, 0x7000, 0xA82A); /* Note that UInt8 *queuedFrameCount replaces Boolean *done. 0(==false) still means no frames, and 1(==true) one, but if more than one are available the number should be returned here. The value 2 previously meant more than one frame, so some VDIGs may return 2 even if more than 2 are available, and some will still return 1 as they are using the original definition. */ EXTERN_API( ComponentResult ) SGGrabCompressComplete (SGChannel c, UInt8 * queuedFrameCount, SGCompressInfo * ci, TimeRecord * tr) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0118, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGDisplayCompress (SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord * mp, RgnHandle clipRgn) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0119, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetFrameRate (SGChannel c, Fixed frameRate) FIVEWORDINLINE(0x2F3C, 0x0004, 0x011A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetFrameRate (SGChannel c, Fixed * frameRate) FIVEWORDINLINE(0x2F3C, 0x0004, 0x011B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetPreferredPacketSize (SGChannel c, long preferredPacketSizeInBytes) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0121, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetPreferredPacketSize (SGChannel c, long * preferredPacketSizeInBytes) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0122, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetUserVideoCompressorList (SGChannel c, Handle compressorTypes) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0123, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetUserVideoCompressorList (SGChannel c, Handle * compressorTypes) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0124, 0x7000, 0xA82A); * Sequence Grab SOUND CHANNEL Component Stuff **/* Sound stuff */ EXTERN_API( ComponentResult ) SGSetSoundInputDriver (SGChannel c, ConstStr255Param driverName) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A); EXTERN_API( long ) SGGetSoundInputDriver (SGChannel c) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0101, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSoundInputDriverChanged (SGChannel c) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0102, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetSoundRecordChunkSize (SGChannel c, long seconds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A); EXTERN_API( long ) SGGetSoundRecordChunkSize (SGChannel c) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0104, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetSoundInputRate (SGChannel c, Fixed rate) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A); EXTERN_API( Fixed ) SGGetSoundInputRate (SGChannel c) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0106, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetSoundInputParameters (SGChannel c, short sampleSize, short numChannels, OSType compressionType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetSoundInputParameters (SGChannel c, short * sampleSize, short * numChannels, OSType * compressionType) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0108, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetAdditionalSoundRates (SGChannel c, Handle rates) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetAdditionalSoundRates (SGChannel c, Handle * rates) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A); /* Text stuff */ EXTERN_API( ComponentResult ) SGSetFontName (SGChannel c, StringPtr pstr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetFontSize (SGChannel c, short fontSize) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0101, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetTextForeColor (SGChannel c, RGBColor * theColor) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetTextBackColor (SGChannel c, RGBColor * theColor) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetJustification (SGChannel c, short just) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0104, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGGetTextReturnToSpaceValue (SGChannel c, short * rettospace) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetTextReturnToSpaceValue (SGChannel c, short rettospace) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0106, 0x7000, 0xA82A); /* Music stuff */ EXTERN_API( ComponentResult ) SGGetInstrument (SGChannel c, ToneDescription * td) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) SGSetInstrument (SGChannel c, ToneDescription * td) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A); enum { sgChannelAtom = FOUR_CHAR_CODE('chan'), sgChannelSettingsAtom = FOUR_CHAR_CODE('ctom'), sgChannelDescription = FOUR_CHAR_CODE('cdsc'), sgChannelSettings = FOUR_CHAR_CODE('cset') }; enum { sgDeviceNameType = FOUR_CHAR_CODE('name'), sgDeviceDisplayNameType = FOUR_CHAR_CODE('dnam'), sgDeviceUIDType = FOUR_CHAR_CODE('duid'), sgInputUIDType = FOUR_CHAR_CODE('iuid'), sgUsageType = FOUR_CHAR_CODE('use '), sgPlayFlagsType = FOUR_CHAR_CODE('plyf'), sgClipType = FOUR_CHAR_CODE('clip'), sgMatrixType = FOUR_CHAR_CODE('mtrx'), sgVolumeType = FOUR_CHAR_CODE('volu') }; enum { sgPanelSettingsAtom = FOUR_CHAR_CODE('ptom'), sgPanelDescription = FOUR_CHAR_CODE('pdsc'), sgPanelSettings = FOUR_CHAR_CODE('pset') }; enum { sgcSoundCompressionType = FOUR_CHAR_CODE('scmp'), sgcSoundCodecSettingsType = FOUR_CHAR_CODE('cdec'), sgcSoundSampleRateType = FOUR_CHAR_CODE('srat'), sgcSoundChannelCountType = FOUR_CHAR_CODE('schn'), sgcSoundSampleSizeType = FOUR_CHAR_CODE('ssiz'), sgcSoundInputType = FOUR_CHAR_CODE('sinp'), sgcSoundGainType = FOUR_CHAR_CODE('gain') }; enum { sgcVideoHueType = FOUR_CHAR_CODE('hue '), sgcVideoSaturationType = FOUR_CHAR_CODE('satr'), sgcVideoContrastType = FOUR_CHAR_CODE('trst'), sgcVideoSharpnessType = FOUR_CHAR_CODE('shrp'), sgcVideoBrigtnessType = FOUR_CHAR_CODE('brit'), sgcVideoBlackLevelType = FOUR_CHAR_CODE('blkl'), sgcVideoWhiteLevelType = FOUR_CHAR_CODE('whtl'), sgcVideoInputType = FOUR_CHAR_CODE('vinp'), sgcVideoFormatType = FOUR_CHAR_CODE('vstd'), sgcVideoFilterType = FOUR_CHAR_CODE('vflt'), sgcVideoRectType = FOUR_CHAR_CODE('vrct'), sgcVideoDigitizerType = FOUR_CHAR_CODE('vdig') }; typedef ComponentInstance QTVideoOutputComponent; /* Component type and subtype enumerations*/ enum { QTVideoOutputComponentType = FOUR_CHAR_CODE('vout'), QTVideoOutputComponentBaseSubType = FOUR_CHAR_CODE('base') }; /* QTVideoOutput Component flags*/ enum { kQTVideoOutputDontDisplayToUser = 1L << 0 }; /* Display mode atom types*/ enum { kQTVODisplayModeItem = FOUR_CHAR_CODE('qdmi'), kQTVODimensions = FOUR_CHAR_CODE('dimn'), /* atom contains two longs - pixel count - width, height*/ kQTVOResolution = FOUR_CHAR_CODE('resl'), /* atom contains two Fixed - hRes, vRes in dpi*/ kQTVORefreshRate = FOUR_CHAR_CODE('refr'), /* atom contains one Fixed - refresh rate in Hz*/ kQTVOPixelType = FOUR_CHAR_CODE('pixl'), /* atom contains one OSType - pixel format of mode*/ kQTVOName = FOUR_CHAR_CODE('name'), /* atom contains string (no length byte) - name of mode for display to user*/ kQTVODecompressors = FOUR_CHAR_CODE('deco'), /* atom contains other atoms indicating supported decompressors*/ /* kQTVODecompressors sub-atoms*/ kQTVODecompressorType = FOUR_CHAR_CODE('dety'), /* atom contains one OSType - decompressor type code*/ kQTVODecompressorContinuous = FOUR_CHAR_CODE('cont'), /* atom contains one Boolean - true if this type is displayed continuously*/ kQTVODecompressorComponent = FOUR_CHAR_CODE('cmpt') /* atom contains one Component - component id of decompressor*/ }; These are QTVideoOutput procedures *EXTERN_API( ComponentResult ) QTVideoOutputGetDisplayModeList (QTVideoOutputComponent vo, QTAtomContainer * outputs) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputGetCurrentClientName (QTVideoOutputComponent vo, Str255 str) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputSetClientName (QTVideoOutputComponent vo, ConstStr255Param str) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputGetClientName (QTVideoOutputComponent vo, Str255 str) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputBegin (QTVideoOutputComponent vo) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputEnd (QTVideoOutputComponent vo) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputSetDisplayMode (QTVideoOutputComponent vo, long displayModeID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputGetDisplayMode (QTVideoOutputComponent vo, long * displayModeID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputCustomConfigureDisplay (QTVideoOutputComponent vo, ModalFilterUPP filter) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0009, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputSaveState (QTVideoOutputComponent vo, QTAtomContainer * state) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputRestoreState (QTVideoOutputComponent vo, QTAtomContainer state) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputGetGWorld (QTVideoOutputComponent vo, GWorldPtr * gw) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputGetGWorldParameters (QTVideoOutputComponent vo, Ptr * baseAddr, long * rowBytes, CTabHandle * colorTable) FIVEWORDINLINE(0x2F3C, 0x000C, 0x000D, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputGetIndSoundOutput (QTVideoOutputComponent vo, long index, Component * outputComponent) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000E, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputGetClock (QTVideoOutputComponent vo, ComponentInstance * clock) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputSetEchoPort (QTVideoOutputComponent vo, CGrafPtr echoPort) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputGetIndImageDecompressor (QTVideoOutputComponent vo, long index, Component * codec) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0011, 0x7000, 0xA82A); EXTERN_API( ComponentResult ) QTVideoOutputBaseSetEchoPort (QTVideoOutputComponent vo, CGrafPtr echoPort) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A); /* UPP call backs */ if OPAQUE_UPP_TYPES EXTERN_API(DataHCompletionUPP) NewDataHCompletionUPP (DataHCompletionProcPtr userRoutine); EXTERN_API(VdigIntUPP) NewVdigIntUPP (VdigIntProcPtr userRoutine); EXTERN_API(StartDocumentHandlerUPP) NewStartDocumentHandlerUPP (StartDocumentHandler userRoutine); EXTERN_API(EndDocumentHandlerUPP) NewEndDocumentHandlerUPP (EndDocumentHandler userRoutine); EXTERN_API(StartElementHandlerUPP) NewStartElementHandlerUPP (StartElementHandler userRoutine); EXTERN_API(EndElementHandlerUPP) NewEndElementHandlerUPP (EndElementHandler userRoutine); EXTERN_API(CharDataHandlerUPP) NewCharDataHandlerUPP (CharDataHandler userRoutine); EXTERN_API(PreprocessInstructionHandlerUPP) NewPreprocessInstructionHandlerUPP (PreprocessInstructionHandler userRoutine); EXTERN_API(CommentHandlerUPP) NewCommentHandlerUPP (CommentHandler userRoutine); EXTERN_API(CDataHandlerUPP) NewCDataHandlerUPP (CDataHandler userRoutine); EXTERN_API(SGDataUPP) NewSGDataUPP (SGDataProcPtr userRoutine); EXTERN_API(SGModalFilterUPP) NewSGModalFilterUPP (SGModalFilterProcPtr userRoutine); EXTERN_API(SGGrabBottleUPP) NewSGGrabBottleUPP (SGGrabBottleProcPtr userRoutine); EXTERN_API(SGGrabCompleteBottleUPP) NewSGGrabCompleteBottleUPP (SGGrabCompleteBottleProcPtr userRoutine); EXTERN_API(SGDisplayBottleUPP) NewSGDisplayBottleUPP (SGDisplayBottleProcPtr userRoutine); EXTERN_API(SGCompressBottleUPP) NewSGCompressBottleUPP (SGCompressBottleProcPtr userRoutine); EXTERN_API(SGCompressCompleteBottleUPP) NewSGCompressCompleteBottleUPP (SGCompressCompleteBottleProcPtr userRoutine); EXTERN_API(SGAddFrameBottleUPP) NewSGAddFrameBottleUPP (SGAddFrameBottleProcPtr userRoutine); EXTERN_API(SGTransferFrameBottleUPP) NewSGTransferFrameBottleUPP (SGTransferFrameBottleProcPtr userRoutine); EXTERN_API(SGGrabCompressCompleteBottleUPP) NewSGGrabCompressCompleteBottleUPP (SGGrabCompressCompleteBottleProcPtr userRoutine); EXTERN_API(SGDisplayCompressBottleUPP) NewSGDisplayCompressBottleUPP (SGDisplayCompressBottleProcPtr userRoutine); EXTERN_API(void) DisposeDataHCompletionUPP (DataHCompletionUPP userUPP); EXTERN_API(void) DisposeVdigIntUPP (VdigIntUPP userUPP); EXTERN_API(void) DisposeStartDocumentHandlerUPP (StartDocumentHandlerUPP userUPP); EXTERN_API(void) DisposeEndDocumentHandlerUPP (EndDocumentHandlerUPP userUPP); EXTERN_API(void) DisposeStartElementHandlerUPP (StartElementHandlerUPP userUPP); EXTERN_API(void) DisposeEndElementHandlerUPP (EndElementHandlerUPP userUPP); EXTERN_API(void) DisposeCharDataHandlerUPP (CharDataHandlerUPP userUPP); EXTERN_API(void) DisposePreprocessInstructionHandlerUPP (PreprocessInstructionHandlerUPP userUPP); EXTERN_API(void) DisposeCommentHandlerUPP (CommentHandlerUPP userUPP); EXTERN_API(void) DisposeCDataHandlerUPP (CDataHandlerUPP userUPP); EXTERN_API(void) DisposeSGDataUPP (SGDataUPP userUPP); EXTERN_API(void) DisposeSGModalFilterUPP (SGModalFilterUPP userUPP); EXTERN_API(void) DisposeSGGrabBottleUPP (SGGrabBottleUPP userUPP); EXTERN_API(void) DisposeSGGrabCompleteBottleUPP (SGGrabCompleteBottleUPP userUPP); EXTERN_API(void) DisposeSGDisplayBottleUPP (SGDisplayBottleUPP userUPP); EXTERN_API(void) DisposeSGCompressBottleUPP (SGCompressBottleUPP userUPP); EXTERN_API(void) DisposeSGCompressCompleteBottleUPP (SGCompressCompleteBottleUPP userUPP); EXTERN_API(void) DisposeSGAddFrameBottleUPP (SGAddFrameBottleUPP userUPP); EXTERN_API(void) DisposeSGTransferFrameBottleUPP (SGTransferFrameBottleUPP userUPP); EXTERN_API(void) DisposeSGGrabCompressCompleteBottleUPP (SGGrabCompressCompleteBottleUPP userUPP); EXTERN_API(void) DisposeSGDisplayCompressBottleUPP (SGDisplayCompressBottleUPP userUPP); EXTERN_API(void) InvokeDataHCompletionUPP (Ptr request, long refcon, OSErr err, DataHCompletionUPP userUPP); EXTERN_API(void) InvokeVdigIntUPP (long flags, long refcon, VdigIntUPP userUPP); EXTERN_API(ComponentResult) InvokeStartDocumentHandlerUPP (long refcon, StartDocumentHandlerUPP userUPP); EXTERN_API(ComponentResult) InvokeEndDocumentHandlerUPP (long refcon, EndDocumentHandlerUPP userUPP); EXTERN_API(ComponentResult) InvokeStartElementHandlerUPP (const char * name, const char *const atts[], long refcon, StartElementHandlerUPP userUPP); EXTERN_API(ComponentResult) InvokeEndElementHandlerUPP (const char * name, long refcon, EndElementHandlerUPP userUPP); EXTERN_API(ComponentResult) InvokeCharDataHandlerUPP (const char * charData, long refcon, CharDataHandlerUPP userUPP); EXTERN_API(ComponentResult) InvokePreprocessInstructionHandlerUPP (const char * name, const char *const atts[], long refcon, PreprocessInstructionHandlerUPP userUPP); EXTERN_API(ComponentResult) InvokeCommentHandlerUPP (const char * comment, long refcon, CommentHandlerUPP userUPP); EXTERN_API(ComponentResult) InvokeCDataHandlerUPP (const char * cdata, long refcon, CDataHandlerUPP userUPP); EXTERN_API(OSErr) InvokeSGDataUPP (SGChannel c, Ptr p, long len, long * offset, long chRefCon, TimeValue time, short writeType, long refCon, SGDataUPP userUPP); EXTERN_API(Boolean) InvokeSGModalFilterUPP (DialogRef theDialog, const EventRecord * theEvent, short * itemHit, long refCon, SGModalFilterUPP userUPP); EXTERN_API(ComponentResult) InvokeSGGrabBottleUPP (SGChannel c, short bufferNum, long refCon, SGGrabBottleUPP userUPP); EXTERN_API(ComponentResult) InvokeSGGrabCompleteBottleUPP (SGChannel c, short bufferNum, Boolean * done, long refCon, SGGrabCompleteBottleUPP userUPP); EXTERN_API(ComponentResult) InvokeSGDisplayBottleUPP (SGChannel c, short bufferNum, MatrixRecord * mp, RgnHandle clipRgn, long refCon, SGDisplayBottleUPP userUPP); EXTERN_API(ComponentResult) InvokeSGCompressBottleUPP (SGChannel c, short bufferNum, long refCon, SGCompressBottleUPP userUPP); EXTERN_API(ComponentResult) InvokeSGCompressCompleteBottleUPP (SGChannel c, short bufferNum, Boolean * done, SGCompressInfo * ci, long refCon, SGCompressCompleteBottleUPP userUPP); EXTERN_API(ComponentResult) InvokeSGAddFrameBottleUPP (SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo * ci, long refCon, SGAddFrameBottleUPP userUPP); EXTERN_API(ComponentResult) InvokeSGTransferFrameBottleUPP (SGChannel c, short bufferNum, MatrixRecord * mp, RgnHandle clipRgn, long refCon, SGTransferFrameBottleUPP userUPP); EXTERN_API(ComponentResult) InvokeSGGrabCompressCompleteBottleUPP (SGChannel c, UInt8 * queuedFrameCount, SGCompressInfo * ci, TimeRecord * t, long refCon, SGGrabCompressCompleteBottleUPP userUPP); EXTERN_API(ComponentResult) InvokeSGDisplayCompressBottleUPP (SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord * mp, RgnHandle clipRgn, long refCon, SGDisplayCompressBottleUPP userUPP); else enum { uppDataHCompletionProcInfo = 0x00000BC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes) */ enum { uppVdigIntProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */ enum { uppStartDocumentHandlerProcInfo = 0x000000F0 }; /* pascal 4_bytes Func(4_bytes) */ enum { uppEndDocumentHandlerProcInfo = 0x000000F0 }; /* pascal 4_bytes Func(4_bytes) */ enum { uppStartElementHandlerProcInfo = 0x00000FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes) */ enum { uppEndElementHandlerProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */ enum { uppCharDataHandlerProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */ enum { uppPreprocessInstructionHandlerProcInfo = 0x00000FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes) */ enum { uppCommentHandlerProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */ enum { uppCDataHandlerProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */ enum { uppSGDataProcInfo = 0x003BFFE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes) */ enum { uppSGModalFilterProcInfo = 0x00003FD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */ enum { uppSGGrabBottleProcInfo = 0x00000EF0 }; /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes) */ enum { uppSGGrabCompleteBottleProcInfo = 0x00003EF0 }; /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */ enum { uppSGDisplayBottleProcInfo = 0x0000FEF0 }; /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */ enum { uppSGCompressBottleProcInfo = 0x00000EF0 }; /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes) */ enum { uppSGCompressCompleteBottleProcInfo = 0x0000FEF0 }; /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */ enum { uppSGAddFrameBottleProcInfo = 0x0003FEF0 }; /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */ enum { uppSGTransferFrameBottleProcInfo = 0x0000FEF0 }; /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */ enum { uppSGGrabCompressCompleteBottleProcInfo = 0x0000FFF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */ enum { uppSGDisplayCompressBottleProcInfo = 0x0003FFF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */ #define NewDataHCompletionUPP(userRoutine) (DataHCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDataHCompletionProcInfo, GetCurrentArchitecture()) #define NewVdigIntUPP(userRoutine) (VdigIntUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppVdigIntProcInfo, GetCurrentArchitecture()) #define NewStartDocumentHandlerUPP(userRoutine) (StartDocumentHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppStartDocumentHandlerProcInfo, GetCurrentArchitecture()) #define NewEndDocumentHandlerUPP(userRoutine) (EndDocumentHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppEndDocumentHandlerProcInfo, GetCurrentArchitecture()) #define NewStartElementHandlerUPP(userRoutine) (StartElementHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppStartElementHandlerProcInfo, GetCurrentArchitecture()) #define NewEndElementHandlerUPP(userRoutine) (EndElementHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppEndElementHandlerProcInfo, GetCurrentArchitecture()) #define NewCharDataHandlerUPP(userRoutine) (CharDataHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppCharDataHandlerProcInfo, GetCurrentArchitecture()) #define NewPreprocessInstructionHandlerUPP(userRoutine) (PreprocessInstructionHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPreprocessInstructionHandlerProcInfo, GetCurrentArchitecture()) #define NewCommentHandlerUPP(userRoutine) (CommentHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppCommentHandlerProcInfo, GetCurrentArchitecture()) #define NewCDataHandlerUPP(userRoutine) (CDataHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppCDataHandlerProcInfo, GetCurrentArchitecture()) #define NewSGDataUPP(userRoutine) (SGDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDataProcInfo, GetCurrentArchitecture()) #define NewSGModalFilterUPP(userRoutine) (SGModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGModalFilterProcInfo, GetCurrentArchitecture()) #define NewSGGrabBottleUPP(userRoutine) (SGGrabBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabBottleProcInfo, GetCurrentArchitecture()) #define NewSGGrabCompleteBottleUPP(userRoutine) (SGGrabCompleteBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabCompleteBottleProcInfo, GetCurrentArchitecture()) #define NewSGDisplayBottleUPP(userRoutine) (SGDisplayBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDisplayBottleProcInfo, GetCurrentArchitecture()) #define NewSGCompressBottleUPP(userRoutine) (SGCompressBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGCompressBottleProcInfo, GetCurrentArchitecture()) #define NewSGCompressCompleteBottleUPP(userRoutine) (SGCompressCompleteBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGCompressCompleteBottleProcInfo, GetCurrentArchitecture()) #define NewSGAddFrameBottleUPP(userRoutine) (SGAddFrameBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGAddFrameBottleProcInfo, GetCurrentArchitecture()) #define NewSGTransferFrameBottleUPP(userRoutine) (SGTransferFrameBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGTransferFrameBottleProcInfo, GetCurrentArchitecture()) #define NewSGGrabCompressCompleteBottleUPP(userRoutine) (SGGrabCompressCompleteBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabCompressCompleteBottleProcInfo, GetCurrentArchitecture()) #define NewSGDisplayCompressBottleUPP(userRoutine) (SGDisplayCompressBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDisplayCompressBottleProcInfo, GetCurrentArchitecture()) #define DisposeDataHCompletionUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeVdigIntUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeStartDocumentHandlerUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeEndDocumentHandlerUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeStartElementHandlerUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeEndElementHandlerUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeCharDataHandlerUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposePreprocessInstructionHandlerUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeCommentHandlerUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeCDataHandlerUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGDataUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGModalFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGGrabBottleUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGGrabCompleteBottleUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGDisplayBottleUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGCompressBottleUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGCompressCompleteBottleUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGAddFrameBottleUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGTransferFrameBottleUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGGrabCompressCompleteBottleUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define DisposeSGDisplayCompressBottleUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define InvokeDataHCompletionUPP(request, refcon, err, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppDataHCompletionProcInfo, (request), (refcon), (err)) #define InvokeVdigIntUPP(flags, refcon, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppVdigIntProcInfo, (flags), (refcon)) #define InvokeStartDocumentHandlerUPP(refcon, userUPP) (ComponentResult)CALL_ONE_PARAMETER_UPP((userUPP), uppStartDocumentHandlerProcInfo, (refcon)) #define InvokeEndDocumentHandlerUPP(refcon, userUPP) (ComponentResult)CALL_ONE_PARAMETER_UPP((userUPP), uppEndDocumentHandlerProcInfo, (refcon)) #define InvokeStartElementHandlerUPP(name, atts, refcon, userUPP) (ComponentResult)CALL_THREE_PARAMETER_UPP((userUPP), uppStartElementHandlerProcInfo, (name), (atts), (refcon)) #define InvokeEndElementHandlerUPP(name, refcon, userUPP) (ComponentResult)CALL_TWO_PARAMETER_UPP((userUPP), uppEndElementHandlerProcInfo, (name), (refcon)) #define InvokeCharDataHandlerUPP(charData, refcon, userUPP) (ComponentResult)CALL_TWO_PARAMETER_UPP((userUPP), uppCharDataHandlerProcInfo, (charData), (refcon)) #define InvokePreprocessInstructionHandlerUPP(name, atts, refcon, userUPP) (ComponentResult)CALL_THREE_PARAMETER_UPP((userUPP), uppPreprocessInstructionHandlerProcInfo, (name), (atts), (refcon)) #define InvokeCommentHandlerUPP(comment, refcon, userUPP) (ComponentResult)CALL_TWO_PARAMETER_UPP((userUPP), uppCommentHandlerProcInfo, (comment), (refcon)) #define InvokeCDataHandlerUPP(cdata, refcon, userUPP) (ComponentResult)CALL_TWO_PARAMETER_UPP((userUPP), uppCDataHandlerProcInfo, (cdata), (refcon)) #define InvokeSGDataUPP(c, p, len, offset, chRefCon, time, writeType, refCon, userUPP) (OSErr)CALL_EIGHT_PARAMETER_UPP((userUPP), uppSGDataProcInfo, (c), (p), (len), (offset), (chRefCon), (time), (writeType), (refCon)) #define InvokeSGModalFilterUPP(theDialog, theEvent, itemHit, refCon, userUPP) (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppSGModalFilterProcInfo, (theDialog), (theEvent), (itemHit), (refCon)) #define InvokeSGGrabBottleUPP(c, bufferNum, refCon, userUPP) (ComponentResult)CALL_THREE_PARAMETER_UPP((userUPP), uppSGGrabBottleProcInfo, (c), (bufferNum), (refCon)) #define InvokeSGGrabCompleteBottleUPP(c, bufferNum, done, refCon, userUPP) (ComponentResult)CALL_FOUR_PARAMETER_UPP((userUPP), uppSGGrabCompleteBottleProcInfo, (c), (bufferNum), (done), (refCon)) #define InvokeSGDisplayBottleUPP(c, bufferNum, mp, clipRgn, refCon, userUPP) (ComponentResult)CALL_FIVE_PARAMETER_UPP((userUPP), uppSGDisplayBottleProcInfo, (c), (bufferNum), (mp), (clipRgn), (refCon)) #define InvokeSGCompressBottleUPP(c, bufferNum, refCon, userUPP) (ComponentResult)CALL_THREE_PARAMETER_UPP((userUPP), uppSGCompressBottleProcInfo, (c), (bufferNum), (refCon)) #define InvokeSGCompressCompleteBottleUPP(c, bufferNum, done, ci, refCon, userUPP) (ComponentResult)CALL_FIVE_PARAMETER_UPP((userUPP), uppSGCompressCompleteBottleProcInfo, (c), (bufferNum), (done), (ci), (refCon)) #define InvokeSGAddFrameBottleUPP(c, bufferNum, atTime, scale, ci, refCon, userUPP) (ComponentResult)CALL_SIX_PARAMETER_UPP((userUPP), uppSGAddFrameBottleProcInfo, (c), (bufferNum), (atTime), (scale), (ci), (refCon)) #define InvokeSGTransferFrameBottleUPP(c, bufferNum, mp, clipRgn, refCon, userUPP) (ComponentResult)CALL_FIVE_PARAMETER_UPP((userUPP), uppSGTransferFrameBottleProcInfo, (c), (bufferNum), (mp), (clipRgn), (refCon)) #define InvokeSGGrabCompressCompleteBottleUPP(c, queuedFrameCount, ci, t, refCon, userUPP) (ComponentResult)CALL_FIVE_PARAMETER_UPP((userUPP), uppSGGrabCompressCompleteBottleProcInfo, (c), (queuedFrameCount), (ci), (t), (refCon)) #define InvokeSGDisplayCompressBottleUPP(c, dataPtr, desc, mp, clipRgn, refCon, userUPP) (ComponentResult)CALL_SIX_PARAMETER_UPP((userUPP), uppSGDisplayCompressBottleProcInfo, (c), (dataPtr), (desc), (mp), (clipRgn), (refCon)) endif /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */ define NewDataHCompletionProc(userRoutine) NewDataHCompletionUPP(userRoutine) define NewVdigIntProc(userRoutine) NewVdigIntUPP(userRoutine) define NewStartDocumentHandlerProc(userRoutine) NewStartDocumentHandlerUPP(userRoutine) define NewEndDocumentHandlerProc(userRoutine) NewEndDocumentHandlerUPP(userRoutine) define NewStartElementHandlerProc(userRoutine) NewStartElementHandlerUPP(userRoutine) define NewEndElementHandlerProc(userRoutine) NewEndElementHandlerUPP(userRoutine) define NewCharDataHandlerProc(userRoutine) NewCharDataHandlerUPP(userRoutine) define NewPreprocessInstructionHandlerProc(userRoutine) NewPreprocessInstructionHandlerUPP(userRoutine) define NewCommentHandlerProc(userRoutine) NewCommentHandlerUPP(userRoutine) define NewCDataHandlerProc(userRoutine) NewCDataHandlerUPP(userRoutine) define NewSGDataProc(userRoutine) NewSGDataUPP(userRoutine) define NewSGModalFilterProc(userRoutine) NewSGModalFilterUPP(userRoutine) define NewSGGrabBottleProc(userRoutine) NewSGGrabBottleUPP(userRoutine) define NewSGGrabCompleteBottleProc(userRoutine) NewSGGrabCompleteBottleUPP(userRoutine) define NewSGDisplayBottleProc(userRoutine) NewSGDisplayBottleUPP(userRoutine) define NewSGCompressBottleProc(userRoutine) NewSGCompressBottleUPP(userRoutine) define NewSGCompressCompleteBottleProc(userRoutine) NewSGCompressCompleteBottleUPP(userRoutine) define NewSGAddFrameBottleProc(userRoutine) NewSGAddFrameBottleUPP(userRoutine) define NewSGTransferFrameBottleProc(userRoutine) NewSGTransferFrameBottleUPP(userRoutine) define NewSGGrabCompressCompleteBottleProc(userRoutine) NewSGGrabCompressCompleteBottleUPP(userRoutine) define NewSGDisplayCompressBottleProc(userRoutine) NewSGDisplayCompressBottleUPP(userRoutine) define CallDataHCompletionProc(userRoutine, request, refcon, err) InvokeDataHCompletionUPP(request, refcon, err, userRoutine) define CallVdigIntProc(userRoutine, flags, refcon) InvokeVdigIntUPP(flags, refcon, userRoutine) define CallStartDocumentHandlerProc(userRoutine, refcon) InvokeStartDocumentHandlerUPP(refcon, userRoutine) define CallEndDocumentHandlerProc(userRoutine, refcon) InvokeEndDocumentHandlerUPP(refcon, userRoutine) define CallStartElementHandlerProc(userRoutine, name, atts, refcon) InvokeStartElementHandlerUPP(name, atts, refcon, userRoutine) define CallEndElementHandlerProc(userRoutine, name, refcon) InvokeEndElementHandlerUPP(name, refcon, userRoutine) define CallCharDataHandlerProc(userRoutine, charData, refcon) InvokeCharDataHandlerUPP(charData, refcon, userRoutine) define CallPreprocessInstructionHandlerProc(userRoutine, name, atts, refcon) InvokePreprocessInstructionHandlerUPP(name, atts, refcon, userRoutine) define CallCommentHandlerProc(userRoutine, comment, refcon) InvokeCommentHandlerUPP(comment, refcon, userRoutine) define CallCDataHandlerProc(userRoutine, cdata, refcon) InvokeCDataHandlerUPP(cdata, refcon, userRoutine) define CallSGDataProc(userRoutine, c, p, len, offset, chRefCon, time, writeType, refCon) InvokeSGDataUPP(c, p, len, offset, chRefCon, time, writeType, refCon, userRoutine) define CallSGModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refCon) InvokeSGModalFilterUPP(theDialog, theEvent, itemHit, refCon, userRoutine) define CallSGGrabBottleProc(userRoutine, c, bufferNum, refCon) InvokeSGGrabBottleUPP(c, bufferNum, refCon, userRoutine) define CallSGGrabCompleteBottleProc(userRoutine, c, bufferNum, done, refCon) InvokeSGGrabCompleteBottleUPP(c, bufferNum, done, refCon, userRoutine) define CallSGDisplayBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon) InvokeSGDisplayBottleUPP(c, bufferNum, mp, clipRgn, refCon, userRoutine) define CallSGCompressBottleProc(userRoutine, c, bufferNum, refCon) InvokeSGCompressBottleUPP(c, bufferNum, refCon, userRoutine) define CallSGCompressCompleteBottleProc(userRoutine, c, bufferNum, done, ci, refCon) InvokeSGCompressCompleteBottleUPP(c, bufferNum, done, ci, refCon, userRoutine) define CallSGAddFrameBottleProc(userRoutine, c, bufferNum, atTime, scale, ci, refCon) InvokeSGAddFrameBottleUPP(c, bufferNum, atTime, scale, ci, refCon, userRoutine) define CallSGTransferFrameBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon) InvokeSGTransferFrameBottleUPP(c, bufferNum, mp, clipRgn, refCon, userRoutine) define CallSGGrabCompressCompleteBottleProc(userRoutine, c, queuedFrameCount, ci, t, refCon) InvokeSGGrabCompressCompleteBottleUPP(c, queuedFrameCount, ci, t, refCon, userRoutine) define CallSGDisplayCompressBottleProc(userRoutine, c, dataPtr, desc, mp, clipRgn, refCon) InvokeSGDisplayCompressBottleUPP(c, dataPtr, desc, mp, clipRgn, refCon, userRoutine) /* selectors for component calls */ enum { kClockGetTimeSelect = 0x0001, kClockNewCallBackSelect = 0x0002, kClockDisposeCallBackSelect = 0x0003, kClockCallMeWhenSelect = 0x0004, kClockCancelCallBackSelect = 0x0005, kClockRateChangedSelect = 0x0006, kClockTimeChangedSelect = 0x0007, kClockSetTimeBaseSelect = 0x0008, kClockStartStopChangedSelect = 0x0009, kClockGetRateSelect = 0x000A, kSCGetCompressionExtendedSelect = 0x0001, kSCPositionRectSelect = 0x0002, kSCPositionDialogSelect = 0x0003, kSCSetTestImagePictHandleSelect = 0x0004, kSCSetTestImagePictFileSelect = 0x0005, kSCSetTestImagePixMapSelect = 0x0006, kSCGetBestDeviceRectSelect = 0x0007, kSCRequestImageSettingsSelect = 0x000A, kSCCompressImageSelect = 0x000B, kSCCompressPictureSelect = 0x000C, kSCCompressPictureFileSelect = 0x000D, kSCRequestSequenceSettingsSelect = 0x000E, kSCCompressSequenceBeginSelect = 0x000F, kSCCompressSequenceFrameSelect = 0x0010, kSCCompressSequenceEndSelect = 0x0011, kSCDefaultPictHandleSettingsSelect = 0x0012, kSCDefaultPictFileSettingsSelect = 0x0013, kSCDefaultPixMapSettingsSelect = 0x0014, kSCGetInfoSelect = 0x0015, kSCSetInfoSelect = 0x0016, kSCNewGWorldSelect = 0x0017, kSCSetCompressFlagsSelect = 0x0018, kSCGetCompressFlagsSelect = 0x0019, kSCGetSettingsAsTextSelect = 0x001A, kSCGetSettingsAsAtomContainerSelect = 0x001B, kSCSetSettingsFromAtomContainerSelect = 0x001C, kSCCompressSequenceFrameAsyncSelect = 0x001D, kSCAsyncIdleSelect = 0x001E, kTweenerInitializeSelect = 0x0001, kTweenerDoTweenSelect = 0x0002, kTweenerResetSelect = 0x0003, kTCGetCurrentTimeCodeSelect = 0x0101, kTCGetTimeCodeAtTimeSelect = 0x0102, kTCTimeCodeToStringSelect = 0x0103, kTCTimeCodeToFrameNumberSelect = 0x0104, kTCFrameNumberToTimeCodeSelect = 0x0105, kTCGetSourceRefSelect = 0x0106, kTCSetSourceRefSelect = 0x0107, kTCSetTimeCodeFlagsSelect = 0x0108, kTCGetTimeCodeFlagsSelect = 0x0109, kTCSetDisplayOptionsSelect = 0x010A, kTCGetDisplayOptionsSelect = 0x010B, kMovieImportHandleSelect = 0x0001, kMovieImportFileSelect = 0x0002, kMovieImportSetSampleDurationSelect = 0x0003, kMovieImportSetSampleDescriptionSelect = 0x0004, kMovieImportSetMediaFileSelect = 0x0005, kMovieImportSetDimensionsSelect = 0x0006, kMovieImportSetChunkSizeSelect = 0x0007, kMovieImportSetProgressProcSelect = 0x0008, kMovieImportSetAuxiliaryDataSelect = 0x0009, kMovieImportSetFromScrapSelect = 0x000A, kMovieImportDoUserDialogSelect = 0x000B, kMovieImportSetDurationSelect = 0x000C, kMovieImportGetAuxiliaryDataTypeSelect = 0x000D, kMovieImportValidateSelect = 0x000E, kMovieImportGetFileTypeSelect = 0x000F, kMovieImportDataRefSelect = 0x0010, kMovieImportGetSampleDescriptionSelect = 0x0011, kMovieImportGetMIMETypeListSelect = 0x0012, kMovieImportSetOffsetAndLimitSelect = 0x0013, kMovieImportGetSettingsAsAtomContainerSelect = 0x0014, kMovieImportSetSettingsFromAtomContainerSelect = 0x0015, kMovieImportSetOffsetAndLimit64Select = 0x0016, kMovieImportIdleSelect = 0x0017, kMovieImportValidateDataRefSelect = 0x0018, kMovieImportGetLoadStateSelect = 0x0019, kMovieImportGetMaxLoadedTimeSelect = 0x001A, kMovieImportEstimateCompletionTimeSelect = 0x001B, kMovieImportSetDontBlockSelect = 0x001C, kMovieImportGetDontBlockSelect = 0x001D, kMovieImportSetIdleManagerSelect = 0x001E, kMovieImportSetNewMovieFlagsSelect = 0x001F, kMovieImportGetDestinationMediaTypeSelect = 0x0020, kMovieExportToHandleSelect = 0x0080, kMovieExportToFileSelect = 0x0081, kMovieExportGetAuxiliaryDataSelect = 0x0083, kMovieExportSetProgressProcSelect = 0x0084, kMovieExportSetSampleDescriptionSelect = 0x0085, kMovieExportDoUserDialogSelect = 0x0086, kMovieExportGetCreatorTypeSelect = 0x0087, kMovieExportToDataRefSelect = 0x0088, kMovieExportFromProceduresToDataRefSelect = 0x0089, kMovieExportAddDataSourceSelect = 0x008A, kMovieExportValidateSelect = 0x008B, kMovieExportGetSettingsAsAtomContainerSelect = 0x008C, kMovieExportSetSettingsFromAtomContainerSelect = 0x008D, kMovieExportGetFileNameExtensionSelect = 0x008E, kMovieExportGetShortFileTypeStringSelect = 0x008F, kMovieExportGetSourceMediaTypeSelect = 0x0090, kMovieExportSetGetMoviePropertyProcSelect = 0x0091, kTextExportGetDisplayDataSelect = 0x0100, kTextExportGetTimeFractionSelect = 0x0101, kTextExportSetTimeFractionSelect = 0x0102, kTextExportGetSettingsSelect = 0x0103, kTextExportSetSettingsSelect = 0x0104, kMIDIImportGetSettingsSelect = 0x0100, kMIDIImportSetSettingsSelect = 0x0101, kMovieExportNewGetDataAndPropertiesProcsSelect = 0x0100, kMovieExportDisposeGetDataAndPropertiesProcsSelect = 0x0101, kGraphicsImageImportSetSequenceEnabledSelect = 0x0100, kGraphicsImageImportGetSequenceEnabledSelect = 0x0101, kPreviewShowDataSelect = 0x0001, kPreviewMakePreviewSelect = 0x0002, kPreviewMakePreviewReferenceSelect = 0x0003, kPreviewEventSelect = 0x0004, kDataCodecDecompressSelect = 0x0001, kDataCodecGetCompressBufferSizeSelect = 0x0002, kDataCodecCompressSelect = 0x0003, kDataCodecBeginInterruptSafeSelect = 0x0004, kDataCodecEndInterruptSafeSelect = 0x0005, kDataCodecDecompressPartialSelect = 0x0006, kDataCodecCompressPartialSelect = 0x0007, kDataHGetDataSelect = 0x0002, kDataHPutDataSelect = 0x0003, kDataHFlushDataSelect = 0x0004, kDataHOpenForWriteSelect = 0x0005, kDataHCloseForWriteSelect = 0x0006, kDataHOpenForReadSelect = 0x0008, kDataHCloseForReadSelect = 0x0009, kDataHSetDataRefSelect = 0x000A, kDataHGetDataRefSelect = 0x000B, kDataHCompareDataRefSelect = 0x000C, kDataHTaskSelect = 0x000D, kDataHScheduleDataSelect = 0x000E, kDataHFinishDataSelect = 0x000F, kDataHFlushCacheSelect = 0x0010, kDataHResolveDataRefSelect = 0x0011, kDataHGetFileSizeSelect = 0x0012, kDataHCanUseDataRefSelect = 0x0013, kDataHGetVolumeListSelect = 0x0014, kDataHWriteSelect = 0x0015, kDataHPreextendSelect = 0x0016, kDataHSetFileSizeSelect = 0x0017, kDataHGetFreeSpaceSelect = 0x0018, kDataHCreateFileSelect = 0x0019, kDataHGetPreferredBlockSizeSelect = 0x001A, kDataHGetDeviceIndexSelect = 0x001B, kDataHIsStreamingDataHandlerSelect = 0x001C, kDataHGetDataInBufferSelect = 0x001D, kDataHGetScheduleAheadTimeSelect = 0x001E, kDataHSetCacheSizeLimitSelect = 0x001F, kDataHGetCacheSizeLimitSelect = 0x0020, kDataHGetMovieSelect = 0x0021, kDataHAddMovieSelect = 0x0022, kDataHUpdateMovieSelect = 0x0023, kDataHDoesBufferSelect = 0x0024, kDataHGetFileNameSelect = 0x0025, kDataHGetAvailableFileSizeSelect = 0x0026, kDataHGetMacOSFileTypeSelect = 0x0027, kDataHGetMIMETypeSelect = 0x0028, kDataHSetDataRefWithAnchorSelect = 0x0029, kDataHGetDataRefWithAnchorSelect = 0x002A, kDataHSetMacOSFileTypeSelect = 0x002B, kDataHSetTimeBaseSelect = 0x002C, kDataHGetInfoFlagsSelect = 0x002D, kDataHScheduleData64Select = 0x002E, kDataHWrite64Select = 0x002F, kDataHGetFileSize64Select = 0x0030, kDataHPreextend64Select = 0x0031, kDataHSetFileSize64Select = 0x0032, kDataHGetFreeSpace64Select = 0x0033, kDataHAppend64Select = 0x0034, kDataHReadAsyncSelect = 0x0035, kDataHPollReadSelect = 0x0036, kDataHGetDataAvailabilitySelect = 0x0037, kDataHGetFileSizeAsyncSelect = 0x003A, kDataHGetDataRefAsTypeSelect = 0x003B, kDataHSetDataRefExtensionSelect = 0x003C, kDataHGetDataRefExtensionSelect = 0x003D, kDataHGetMovieWithFlagsSelect = 0x003E, kDataHGetFileTypeOrderingSelect = 0x0040, kDataHCreateFileWithFlagsSelect = 0x0041, kDataHGetMIMETypeAsyncSelect = 0x0042, kDataHGetInfoSelect = 0x0043, kDataHSetIdleManagerSelect = 0x0044, kDataHDeleteFileSelect = 0x0045, kDataHSetMovieUsageFlagsSelect = 0x0046, kDataHUseTemporaryDataRefSelect = 0x0047, kDataHGetTemporaryDataRefCapabilitiesSelect = 0x0048, kDataHRenameFileSelect = 0x0049, kDataHPlaybackHintsSelect = 0x0103, kDataHPlaybackHints64Select = 0x010E, kDataHGetDataRateSelect = 0x0110, kDataHSetTimeHintsSelect = 0x0111, kVDGetMaxSrcRectSelect = 0x0001, kVDGetActiveSrcRectSelect = 0x0002, kVDSetDigitizerRectSelect = 0x0003, kVDGetDigitizerRectSelect = 0x0004, kVDGetVBlankRectSelect = 0x0005, kVDGetMaskPixMapSelect = 0x0006, kVDGetPlayThruDestinationSelect = 0x0008, kVDUseThisCLUTSelect = 0x0009, kVDSetInputGammaValueSelect = 0x000A, kVDGetInputGammaValueSelect = 0x000B, kVDSetBrightnessSelect = 0x000C, kVDGetBrightnessSelect = 0x000D, kVDSetContrastSelect = 0x000E, kVDSetHueSelect = 0x000F, kVDSetSharpnessSelect = 0x0010, kVDSetSaturationSelect = 0x0011, kVDGetContrastSelect = 0x0012, kVDGetHueSelect = 0x0013, kVDGetSharpnessSelect = 0x0014, kVDGetSaturationSelect = 0x0015, kVDGrabOneFrameSelect = 0x0016, kVDGetMaxAuxBufferSelect = 0x0017, kVDGetDigitizerInfoSelect = 0x0019, kVDGetCurrentFlagsSelect = 0x001A, kVDSetKeyColorSelect = 0x001B, kVDGetKeyColorSelect = 0x001C, kVDAddKeyColorSelect = 0x001D, kVDGetNextKeyColorSelect = 0x001E, kVDSetKeyColorRangeSelect = 0x001F, kVDGetKeyColorRangeSelect = 0x0020, kVDSetDigitizerUserInterruptSelect = 0x0021, kVDSetInputColorSpaceModeSelect = 0x0022, kVDGetInputColorSpaceModeSelect = 0x0023, kVDSetClipStateSelect = 0x0024, kVDGetClipStateSelect = 0x0025, kVDSetClipRgnSelect = 0x0026, kVDClearClipRgnSelect = 0x0027, kVDGetCLUTInUseSelect = 0x0028, kVDSetPLLFilterTypeSelect = 0x0029, kVDGetPLLFilterTypeSelect = 0x002A, kVDGetMaskandValueSelect = 0x002B, kVDSetMasterBlendLevelSelect = 0x002C, kVDSetPlayThruDestinationSelect = 0x002D, kVDSetPlayThruOnOffSelect = 0x002E, kVDSetFieldPreferenceSelect = 0x002F, kVDGetFieldPreferenceSelect = 0x0030, kVDPreflightDestinationSelect = 0x0032, kVDPreflightGlobalRectSelect = 0x0033, kVDSetPlayThruGlobalRectSelect = 0x0034, kVDSetInputGammaRecordSelect = 0x0035, kVDGetInputGammaRecordSelect = 0x0036, kVDSetBlackLevelValueSelect = 0x0037, kVDGetBlackLevelValueSelect = 0x0038, kVDSetWhiteLevelValueSelect = 0x0039, kVDGetWhiteLevelValueSelect = 0x003A, kVDGetVideoDefaultsSelect = 0x003B, kVDGetNumberOfInputsSelect = 0x003C, kVDGetInputFormatSelect = 0x003D, kVDSetInputSelect = 0x003E, kVDGetInputSelect = 0x003F, kVDSetInputStandardSelect = 0x0040, kVDSetupBuffersSelect = 0x0041, kVDGrabOneFrameAsyncSelect = 0x0042, kVDDoneSelect = 0x0043, kVDSetCompressionSelect = 0x0044, kVDCompressOneFrameAsyncSelect = 0x0045, kVDCompressDoneSelect = 0x0046, kVDReleaseCompressBufferSelect = 0x0047, kVDGetImageDescriptionSelect = 0x0048, kVDResetCompressSequenceSelect = 0x0049, kVDSetCompressionOnOffSelect = 0x004A, kVDGetCompressionTypesSelect = 0x004B, kVDSetTimeBaseSelect = 0x004C, kVDSetFrameRateSelect = 0x004D, kVDGetDataRateSelect = 0x004E, kVDGetSoundInputDriverSelect = 0x004F, kVDGetDMADepthsSelect = 0x0050, kVDGetPreferredTimeScaleSelect = 0x0051, kVDReleaseAsyncBuffersSelect = 0x0052, kVDSetDataRateSelect = 0x0054, kVDGetTimeCodeSelect = 0x0055, kVDUseSafeBuffersSelect = 0x0056, kVDGetSoundInputSourceSelect = 0x0057, kVDGetCompressionTimeSelect = 0x0058, kVDSetPreferredPacketSizeSelect = 0x0059, kVDSetPreferredImageDimensionsSelect = 0x005A, kVDGetPreferredImageDimensionsSelect = 0x005B, kVDGetInputNameSelect = 0x005C, kVDSetDestinationPortSelect = 0x005D, kVDGetDeviceNameAndFlagsSelect = 0x005E, kVDCaptureStateChangingSelect = 0x005F, kVDGetUniqueIDsSelect = 0x0060, kVDSelectUniqueIDsSelect = 0x0061, kVDIIDCGetFeaturesSelect = 0x0200, kVDIIDCSetFeaturesSelect = 0x0201, kVDIIDCGetDefaultFeaturesSelect = 0x0202, kVDIIDCGetCSRDataSelect = 0x0203, kVDIIDCSetCSRDataSelect = 0x0204, kXMLParseDataRefSelect = 0x0001, kXMLParseFileSelect = 0x0002, kXMLParseDisposeXMLDocSelect = 0x0003, kXMLParseGetDetailedParseErrorSelect = 0x0004, kXMLParseAddElementSelect = 0x0005, kXMLParseAddAttributeSelect = 0x0006, kXMLParseAddMultipleAttributesSelect = 0x0007, kXMLParseAddAttributeAndValueSelect = 0x0008, kXMLParseAddMultipleAttributesAndValuesSelect = 0x0009, kXMLParseAddAttributeValueKindSelect = 0x000A, kXMLParseAddNameSpaceSelect = 0x000B, kXMLParseSetOffsetAndLimitSelect = 0x000C, kXMLParseSetEventParseRefConSelect = 0x000D, kXMLParseSetStartDocumentHandlerSelect = 0x000E, kXMLParseSetEndDocumentHandlerSelect = 0x000F, kXMLParseSetStartElementHandlerSelect = 0x0010, kXMLParseSetEndElementHandlerSelect = 0x0011, kXMLParseSetCharDataHandlerSelect = 0x0012, kXMLParseSetPreprocessInstructionHandlerSelect = 0x0013, kXMLParseSetCommentHandlerSelect = 0x0014, kXMLParseSetCDataHandlerSelect = 0x0015, kSGInitializeSelect = 0x0001, kSGSetDataOutputSelect = 0x0002, kSGGetDataOutputSelect = 0x0003, kSGSetGWorldSelect = 0x0004, kSGGetGWorldSelect = 0x0005, kSGNewChannelSelect = 0x0006, kSGDisposeChannelSelect = 0x0007, kSGStartPreviewSelect = 0x0010, kSGStartRecordSelect = 0x0011, kSGIdleSelect = 0x0012, kSGStopSelect = 0x0013, kSGPauseSelect = 0x0014, kSGPrepareSelect = 0x0015, kSGReleaseSelect = 0x0016, kSGGetMovieSelect = 0x0017, kSGSetMaximumRecordTimeSelect = 0x0018, kSGGetMaximumRecordTimeSelect = 0x0019, kSGGetStorageSpaceRemainingSelect = 0x001A, kSGGetTimeRemainingSelect = 0x001B, kSGGrabPictSelect = 0x001C, kSGGetLastMovieResIDSelect = 0x001D, kSGSetFlagsSelect = 0x001E, kSGGetFlagsSelect = 0x001F, kSGSetDataProcSelect = 0x0020, kSGNewChannelFromComponentSelect = 0x0021, kSGDisposeDeviceListSelect = 0x0022, kSGAppendDeviceListToMenuSelect = 0x0023, kSGSetSettingsSelect = 0x0024, kSGGetSettingsSelect = 0x0025, kSGGetIndChannelSelect = 0x0026, kSGUpdateSelect = 0x0027, kSGGetPauseSelect = 0x0028, kSGSettingsDialogSelect = 0x0029, kSGGetAlignmentProcSelect = 0x002A, kSGSetChannelSettingsSelect = 0x002B, kSGGetChannelSettingsSelect = 0x002C, kSGGetModeSelect = 0x002D, kSGSetDataRefSelect = 0x002E, kSGGetDataRefSelect = 0x002F, kSGNewOutputSelect = 0x0030, kSGDisposeOutputSelect = 0x0031, kSGSetOutputFlagsSelect = 0x0032, kSGSetChannelOutputSelect = 0x0033, kSGGetDataOutputStorageSpaceRemainingSelect = 0x0034, kSGHandleUpdateEventSelect = 0x0035, kSGSetOutputNextOutputSelect = 0x0036, kSGGetOutputNextOutputSelect = 0x0037, kSGSetOutputMaximumOffsetSelect = 0x0038, kSGGetOutputMaximumOffsetSelect = 0x0039, kSGGetOutputDataReferenceSelect = 0x003A, kSGWriteExtendedMovieDataSelect = 0x003B, kSGGetStorageSpaceRemaining64Select = 0x003C, kSGGetDataOutputStorageSpaceRemaining64Select = 0x003D, kSGWriteMovieDataSelect = 0x0100, kSGAddFrameReferenceSelect = 0x0101, kSGGetNextFrameReferenceSelect = 0x0102, kSGGetTimeBaseSelect = 0x0103, kSGSortDeviceListSelect = 0x0104, kSGAddMovieDataSelect = 0x0105, kSGChangedSourceSelect = 0x0106, kSGAddExtendedFrameReferenceSelect = 0x0107, kSGGetNextExtendedFrameReferenceSelect = 0x0108, kSGAddExtendedMovieDataSelect = 0x0109, kSGAddOutputDataRefToMediaSelect = 0x010A, kSGSetSettingsSummarySelect = 0x010B, kSGSetChannelUsageSelect = 0x0080, kSGGetChannelUsageSelect = 0x0081, kSGSetChannelBoundsSelect = 0x0082, kSGGetChannelBoundsSelect = 0x0083, kSGSetChannelVolumeSelect = 0x0084, kSGGetChannelVolumeSelect = 0x0085, kSGGetChannelInfoSelect = 0x0086, kSGSetChannelPlayFlagsSelect = 0x0087, kSGGetChannelPlayFlagsSelect = 0x0088, kSGSetChannelMaxFramesSelect = 0x0089, kSGGetChannelMaxFramesSelect = 0x008A, kSGSetChannelRefConSelect = 0x008B, kSGSetChannelClipSelect = 0x008C, kSGGetChannelClipSelect = 0x008D, kSGGetChannelSampleDescriptionSelect = 0x008E, kSGGetChannelDeviceListSelect = 0x008F, kSGSetChannelDeviceSelect = 0x0090, kSGSetChannelMatrixSelect = 0x0091, kSGGetChannelMatrixSelect = 0x0092, kSGGetChannelTimeScaleSelect = 0x0093, kSGChannelPutPictureSelect = 0x0094, kSGChannelSetRequestedDataRateSelect = 0x0095, kSGChannelGetRequestedDataRateSelect = 0x0096, kSGChannelSetDataSourceNameSelect = 0x0097, kSGChannelGetDataSourceNameSelect = 0x0098, kSGChannelSetCodecSettingsSelect = 0x0099, kSGChannelGetCodecSettingsSelect = 0x009A, kSGGetChannelTimeBaseSelect = 0x009B, kSGGetChannelRefConSelect = 0x009C, kSGGetChannelDeviceAndInputNamesSelect = 0x009D, kSGSetChannelDeviceInputSelect = 0x009E, kSGSetChannelSettingsStateChangingSelect = 0x009F, kSGInitChannelSelect = 0x0180, kSGWriteSamplesSelect = 0x0181, kSGGetDataRateSelect = 0x0182, kSGAlignChannelRectSelect = 0x0183, kSGPanelGetDitlSelect = 0x0200, kSGPanelGetTitleSelect = 0x0201, kSGPanelCanRunSelect = 0x0202, kSGPanelInstallSelect = 0x0203, kSGPanelEventSelect = 0x0204, kSGPanelItemSelect = 0x0205, kSGPanelRemoveSelect = 0x0206, kSGPanelSetGrabberSelect = 0x0207, kSGPanelSetResFileSelect = 0x0208, kSGPanelGetSettingsSelect = 0x0209, kSGPanelSetSettingsSelect = 0x020A, kSGPanelValidateInputSelect = 0x020B, kSGPanelSetEventFilterSelect = 0x020C, kSGPanelGetDITLForSizeSelect = 0x020D, kSGGetSrcVideoBoundsSelect = 0x0100, kSGSetVideoRectSelect = 0x0101, kSGGetVideoRectSelect = 0x0102, kSGGetVideoCompressorTypeSelect = 0x0103, kSGSetVideoCompressorTypeSelect = 0x0104, kSGSetVideoCompressorSelect = 0x0105, kSGGetVideoCompressorSelect = 0x0106, kSGGetVideoDigitizerComponentSelect = 0x0107, kSGSetVideoDigitizerComponentSelect = 0x0108, kSGVideoDigitizerChangedSelect = 0x0109, kSGSetVideoBottlenecksSelect = 0x010A, kSGGetVideoBottlenecksSelect = 0x010B, kSGGrabFrameSelect = 0x010C, kSGGrabFrameCompleteSelect = 0x010D, kSGDisplayFrameSelect = 0x010E, kSGCompressFrameSelect = 0x010F, kSGCompressFrameCompleteSelect = 0x0110, kSGAddFrameSelect = 0x0111, kSGTransferFrameForCompressSelect = 0x0112, kSGSetCompressBufferSelect = 0x0113, kSGGetCompressBufferSelect = 0x0114, kSGGetBufferInfoSelect = 0x0115, kSGSetUseScreenBufferSelect = 0x0116, kSGGetUseScreenBufferSelect = 0x0117, kSGGrabCompressCompleteSelect = 0x0118, kSGDisplayCompressSelect = 0x0119, kSGSetFrameRateSelect = 0x011A, kSGGetFrameRateSelect = 0x011B, kSGSetPreferredPacketSizeSelect = 0x0121, kSGGetPreferredPacketSizeSelect = 0x0122, kSGSetUserVideoCompressorListSelect = 0x0123, kSGGetUserVideoCompressorListSelect = 0x0124, kSGSetSoundInputDriverSelect = 0x0100, kSGGetSoundInputDriverSelect = 0x0101, kSGSoundInputDriverChangedSelect = 0x0102, kSGSetSoundRecordChunkSizeSelect = 0x0103, kSGGetSoundRecordChunkSizeSelect = 0x0104, kSGSetSoundInputRateSelect = 0x0105, kSGGetSoundInputRateSelect = 0x0106, kSGSetSoundInputParametersSelect = 0x0107, kSGGetSoundInputParametersSelect = 0x0108, kSGSetAdditionalSoundRatesSelect = 0x0109, kSGGetAdditionalSoundRatesSelect = 0x010A, kSGSetFontNameSelect = 0x0100, kSGSetFontSizeSelect = 0x0101, kSGSetTextForeColorSelect = 0x0102, kSGSetTextBackColorSelect = 0x0103, kSGSetJustificationSelect = 0x0104, kSGGetTextReturnToSpaceValueSelect = 0x0105, kSGSetTextReturnToSpaceValueSelect = 0x0106, kSGGetInstrumentSelect = 0x0100, kSGSetInstrumentSelect = 0x0101, kQTVideoOutputGetDisplayModeListSelect = 0x0001, kQTVideoOutputGetCurrentClientNameSelect = 0x0002, kQTVideoOutputSetClientNameSelect = 0x0003, kQTVideoOutputGetClientNameSelect = 0x0004, kQTVideoOutputBeginSelect = 0x0005, kQTVideoOutputEndSelect = 0x0006, kQTVideoOutputSetDisplayModeSelect = 0x0007, kQTVideoOutputGetDisplayModeSelect = 0x0008, kQTVideoOutputCustomConfigureDisplaySelect = 0x0009, kQTVideoOutputSaveStateSelect = 0x000A, kQTVideoOutputRestoreStateSelect = 0x000B, kQTVideoOutputGetGWorldSelect = 0x000C, kQTVideoOutputGetGWorldParametersSelect = 0x000D, kQTVideoOutputGetIndSoundOutputSelect = 0x000E, kQTVideoOutputGetClockSelect = 0x000F, kQTVideoOutputSetEchoPortSelect = 0x0010, kQTVideoOutputGetIndImageDecompressorSelect = 0x0011, kQTVideoOutputBaseSetEchoPortSelect = 0x0012 }; 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 /* __QUICKTIMECOMPONENTS__ */
[]readme course(s) prefaceI 1 2II 3 4III 5 6 7IV 8 9 10V 11 12 afterthought(s)appendix reference(s) example(s)resource(s) _![]()
(C) Æliens 04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.