supermario/base/SuperMarioProj.1994-02-09/OS/VDig/QuickTimeComponents.h

877 lines
32 KiB
C
Raw Permalink Normal View History

2019-06-29 15:17:50 +00:00
/************************************************************
Created: Saturday, August 17, 1991 at 10:03 AM
QuickTimeComponents.h
C Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1991
All rights reserved
************************************************************/
#ifndef __QUICKTIMECOMPONENTS__
#define __QUICKTIMECOMPONENTS__
#ifndef __COMPONENTS__
#include <Components.h>
#endif
#ifndef __IMAGECOMPRESSION__
#include <ImageCompression.h>
#endif
#ifndef __MOVIES__
#include <Movies.h>
#endif
#ifndef __QUICKDRAW__
#include <QuickDraw.h>
#endif
#ifndef __VIDEO__
#include <Video.h>
#endif
enum {
/*****
Clock Component
*****/
#define clockComponentType 'clok'
#define systemTickClock 'tick' /* subtype: 60ths since boot */
#define systemMicrosecondClock 'micr' /* subtype: 1000000ths since boot */
kClockRateIsLinear = 1,
kClockImplementsCallBacks = 2
};
enum {kClockGetClockTimeSelect = 1,kClockSetClockTimeSelect = 2,kClockNewCallBackSelect,
kClockDisposeCallBackSelect,kClockCallMeWhenSelect,kClockCancelCallBackSelect,
kClockRateChangedSelect,kClockTimeChangedSelect,kClockSetTimeBaseSelect};
typedef unsigned ClockComponentSelectors;
#ifdef __cplusplus
extern "C" {
#endif
pascal ComponentResult GetClockTime(ComponentInstance aClock,TimeRecord *out)
= {0x2F3C,0x4,0x1,0x7000,0xA82A};
pascal QTCallBack ClockNewCallBack(ComponentInstance aClock,TimeBase tb,
short callBackType)
= {0x2F3C,0x6,0x1,0x7000,0xA82A};
pascal ComponentResult ClockDisposeCallBack(ComponentInstance aClock,QTCallBack cb)
= {0x2F3C,0x4,0x1,0x7000,0xA82A};
pascal ComponentResult ClockCallMeWhen(ComponentInstance clock,QTCallBack cb,
long param1,long param2,long param3)
= {0x2F3C,0x10,0x1,0x7000,0xA82A};
pascal ComponentResult ClockCancelCallBack(ComponentInstance clock,QTCallBack cb)
= {0x2F3C,0x4,0x1,0x7000,0xA82A};
pascal ComponentResult ClockRateChanged(ComponentInstance clock,QTCallBack cb)
= {0x2F3C,0x4,0x1,0x7000,0xA82A};
pascal ComponentResult ClockTimeChanged(ComponentInstance clock,QTCallBack cb)
= {0x2F3C,0x4,0x1,0x7000,0xA82A};
pascal ComponentResult ClockSetTimeBase(ComponentInstance clock,TimeBase tb)
= {0x2F3C,0x4,0x1,0x7000,0xA82A};
#ifdef __cplusplus
}
#endif
enum {
/*
Video Digitizer Component
Standard type for video digitizers */
videoDigitizerComponentType = 'vdig',
vdigInterfaceRev = 2L,
/* Input Format Standards */
ntscIn = 0 , /* ntsc input format */
palIn = 1 , /* pal input format */
secamIn = 2, /* secam input format */
/* Input Formats */
compositeIn = 0 , /* input is composite format */
sVideoIn = 1 , /* input is sVideo format */
rgbComponentIn = 2 , /* input is rgb component format */
/* Video Digitizer PlayThru States */
vdPlayThruOff = 0,
vdPlayThruOn = 1,
/* Input Color Space Modes */
vdDigitizerBW = 0 , /* black and white */
vdDigitizerRGB = 1 , /* rgb color */
/* Phase Lock Loop Modes */
vdBroadcastMode = 0, /* Broadcast / Laser Disk video mode */
vdVTRMode = 1 , /* VCR / Magnetic media mode */
/* Field Select Options */
vdUseAnyField = 0,
vdUseOddField = 1,
vdUseEvenField = 2,
/* vdig types */
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 Error Codes */
digiUnimpErr = -2201, /* feature unimplemented */
qtParamErr = -2202 , /* bad input parameter ( out of range, etc ) */
matrixErr = -2203 , /* bad matrix, digitizer did nothing */
notExactMatrix = -2204 , /* warning of bad matrix, digitizer did its best */
noMoreKeyColors = -2205, /* all key indexes in use */
notExactSize = -2206 , /* Cant do exact size requested */
badDepth = -2207, /* Cant digitize into this depth */
noDMA = -2208 , /* Cant do DMA digitizing ( i.e. can't go to requested dest) */
badCallOrder = -2209, /* Usually due to a status call being called prior to being setup first */
/* Digitizer Input Capability/Current Flags */
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 */
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 */
};
typedef ComponentInstance VideoDigitizerComponent;
typedef ComponentResult VideoDigitizerError;
/* Types */
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 height */
short blendLevels; /* Number of blend levels supported (2 if 1 bit mask) */
long Private; /* reserved */
};
typedef struct DigitizerInfo DigitizerInfo;
typedef struct {
PixMapHandle dest;
Point location;
long reserved;
} VdigBufferRec;
struct VdigBufferRecList {
short count;
MatrixRecordPtr matrix;
RgnHandle mask;
VdigBufferRec list[1];
};
typedef struct VdigBufferRecList VdigBufferRecList;
typedef VdigBufferRecList *VdigBufferRecListPtr, **VdigBufferRecListHandle;
typedef pascal void (*VdigIntProc)(long flags, long refcon);
enum {
/* Video Digitizer Interface */
kSelectVDGetMaxSrcRect = 1,
kSelectVDGetActiveSrcRect = 2,
kSelectVDSetDigitizerRect = 3,
kSelectVDGetDigitizerRect = 4,
kSelectVDGetVBlankRect = 5,
kSelectVDGetMaskPixMap = 6,
/* 1 available selector here */
kSelectVDGetPlayThruDestination = 8,
kSelectVDUseThisCLUT = 9,
kSelectVDSetInputGammaValue = 10,
kSelectVDGetInputGammaValue = 11,
kSelectVDSetBrightness = 12,
kSelectVDGetBrightness = 13,
kSelectVDSetContrast = 14,
kSelectVDSetHue = 15,
kSelectVDSetSharpness = 16,
kSelectVDSetSaturation = 17,
kSelectVDGetContrast = 18,
kSelectVDGetHue = 19,
kSelectVDGetSharpness = 20
};
enum {
kSelectVDGetSaturation = 21,
kSelectVDGrabOneFrame = 22,
kSelectVDGetMaxAuxBuffer = 23,
/* 1 available selector here */
kSelectVDGetDigitizerInfo = 25,
kSelectVDGetCurrentFlags = 26,
kSelectVDSetKeyColor = 27,
kSelectVDGetKeyColor = 28,
kSelectVDAddKeyColor = 29,
kSelectVDGetNextKeyColor = 30,
kSelectVDSetKeyColorRange = 31,
kSelectVDGetKeyColorRange = 32,
kSelectVDSetDigitizerUserInterrupt = 33,
kSelectVDSetInputColorSpaceMode = 34,
kSelectVDGetInputColorSpaceMode = 35,
kSelectVDSetClipState = 36,
kSelectVDGetClipState = 37,
kSelectVDSetClipRgn = 38,
kSelectVDClearClipRgn = 39,
kSelectVDGetCLUTInUse = 40
};
enum {
kSelectVDSetPLLFilterType = 41,
kSelectVDGetPLLFilterType = 42,
kSelectVDGetMaskandValue = 43,
kSelectVDSetMasterBlendLevel = 44,
kSelectVDSetPlayThruDestination = 45,
kSelectVDSetPlayThruOnOff = 46,
kSelectVDSetFieldPreference = 47,
kSelectVDGetFieldPreference = 48,
/* 1 available selectors here */
kSelectVDPreflightDestination = 50,
kSelectVDPreflightGlobalRect = 51,
kSelectVDSetPlayThruGlobalRect = 52,
kSelectVDSetInputGammaRecord = 53,
kSelectVDGetInputGammaRecord = 54,
kSelectVDSetBlackLevelValue = 55,
kSelectVDGetBlackLevelValue = 56,
kSelectVDSetWhiteLevelValue = 57,
kSelectVDGetWhiteLevelValue = 58,
kSelectVDGetVideoDefaults = 59,
kSelectVDGetNumberOfInputs = 60
};
enum {
kSelectVDGetInputFormat = 61,
kSelectVDSetInput = 62,
kSelectVDGetInput = 63,
kSelectVDSetInputStandard = 64,
kSelectVDSetupBuffers = 65,
kSelectVDGrabOneFrameAsync = 66,
kSelectVDDone = 67,
kvdigSelectors = 67
};
#ifdef __cplusplus
extern "C" {
#endif
pascal VideoDigitizerError VDGetMaxSrcRect(VideoDigitizerComponent ci,short inputStd,
Rect *maxSrcRect)
= {0x2F3C,0x6,0x1,0x7000,0xA82A};
pascal VideoDigitizerError VDGetActiveSrcRect(VideoDigitizerComponent ci,short inputStd,
Rect *activeSrcRect)
= {0x2F3C,0x6,0x2,0x7000,0xA82A};
pascal VideoDigitizerError VDSetDigitizerRect(VideoDigitizerComponent ci,Rect *digitizerRect)
= {0x2F3C,0x4,0x3,0x7000,0xA82A};
pascal VideoDigitizerError VDGetDigitizerRect(VideoDigitizerComponent ci,Rect *digitizerRect)
= {0x2F3C,0x4,0x4,0x7000,0xA82A};
pascal VideoDigitizerError VDGetVBlankRect(VideoDigitizerComponent ci,short inputStd,
Rect *vBlankRect)
= {0x2F3C,0x6,0x5,0x7000,0xA82A};
pascal VideoDigitizerError VDGetMaskPixMap(VideoDigitizerComponent ci,PixMapHandle maskPixMap)
= {0x2F3C,0x4,0x6,0x7000,0xA82A};
pascal VideoDigitizerError VDGetPlayThruDestination(VideoDigitizerComponent ci,
PixMapHandle *dest,Rect *destRect,MatrixRecord *m,RgnHandle *mask)
= {0x2F3C,0x10,0x8,0x7000,0xA82A};
pascal VideoDigitizerError VDUseThisCLUT(VideoDigitizerComponent ci,CTabHandle colorTableHandle)
= {0x2F3C,0x4,0x9,0x7000,0xA82A};
pascal VideoDigitizerError VDSetInputGammaValue(VideoDigitizerComponent ci,
Fixed channel1,Fixed channel2,Fixed channel3)
= {0x2F3C,0xC,0xA,0x7000,0xA82A};
pascal VideoDigitizerError VDGetInputGammaValue(VideoDigitizerComponent ci,
Fixed *channel1,Fixed *channel2,Fixed *channel3)
= {0x2F3C,0xC,0xB,0x7000,0xA82A};
pascal VideoDigitizerError VDSetBrightness(VideoDigitizerComponent ci,unsigned short *brightness)
= {0x2F3C,0x4,0xC,0x7000,0xA82A};
pascal VideoDigitizerError VDGetBrightness(VideoDigitizerComponent ci,unsigned short *brightness)
= {0x2F3C,0x4,0xD,0x7000,0xA82A};
pascal VideoDigitizerError VDSetContrast(VideoDigitizerComponent ci,unsigned short *contrast)
= {0x2F3C,0x4,0xE,0x7000,0xA82A};
pascal VideoDigitizerError VDSetHue(VideoDigitizerComponent ci,unsigned short *hue)
= {0x2F3C,0x4,0xF,0x7000,0xA82A};
pascal VideoDigitizerError VDSetSharpness(VideoDigitizerComponent ci,unsigned short *sharpness)
= {0x2F3C,0x4,0x10,0x7000,0xA82A};
pascal VideoDigitizerError VDSetSaturation(VideoDigitizerComponent ci,unsigned short *saturation)
= {0x2F3C,0x4,0x11,0x7000,0xA82A};
pascal VideoDigitizerError VDGetContrast(VideoDigitizerComponent ci,unsigned short *contrast)
= {0x2F3C,0x4,0x12,0x7000,0xA82A};
pascal VideoDigitizerError VDGetHue(VideoDigitizerComponent ci,unsigned short *hue)
= {0x2F3C,0x4,0x13,0x7000,0xA82A};
pascal VideoDigitizerError VDGetSharpness(VideoDigitizerComponent ci,unsigned short *sharpness)
= {0x2F3C,0x4,0x14,0x7000,0xA82A};
pascal VideoDigitizerError VDGetSaturation(VideoDigitizerComponent ci,unsigned short *saturation)
= {0x2F3C,0x4,0x15,0x7000,0xA82A};
pascal VideoDigitizerError VDGrabOneFrame(VideoDigitizerComponent ci)
= {0x2F3C,0x0,0x16,0x7000,0xA82A};
pascal VideoDigitizerError VDGetMaxAuxBuffer(VideoDigitizerComponent ci,PixMapHandle *pm,
Rect *r)
= {0x2F3C,0x8,0x17,0x7000,0xA82A};
pascal VideoDigitizerError VDGetDigitizerInfo(VideoDigitizerComponent ci,DigitizerInfo *info)
= {0x2F3C,0x4,0x19,0x7000,0xA82A};
pascal VideoDigitizerError VDGetCurrentFlags(VideoDigitizerComponent ci,long *inputCurrentFlag,
long *outputCurrentFlag)
= {0x2F3C,0x8,0x1A,0x7000,0xA82A};
pascal VideoDigitizerError VDSetKeyColor(VideoDigitizerComponent ci,long index)
= {0x2F3C,0x4,0x1B,0x7000,0xA82A};
pascal VideoDigitizerError VDGetKeyColor(VideoDigitizerComponent ci,long *index)
= {0x2F3C,0x4,0x1C,0x7000,0xA82A};
pascal VideoDigitizerError VDAddKeyColor(VideoDigitizerComponent ci,long *index)
= {0x2F3C,0x4,0x1D,0x7000,0xA82A};
pascal VideoDigitizerError VDGetNextKeyColor(VideoDigitizerComponent ci,long index)
= {0x2F3C,0x4,0x1E,0x7000,0xA82A};
pascal VideoDigitizerError VDSetKeyColorRange(VideoDigitizerComponent ci,RGBColor *minRGB,
RGBColor *maxRGB)
= {0x2F3C,0x8,0x1F,0x7000,0xA82A};
pascal VideoDigitizerError VDGetKeyColorRange(VideoDigitizerComponent ci,RGBColor *minRGB,
RGBColor *maxRGB)
= {0x2F3C,0x8,0x20,0x7000,0xA82A};
pascal VideoDigitizerError VDSetDigitizerUserInterrupt(VideoDigitizerComponent ci,
long flags, VdigIntProc userInterruptProc, long refcon)
= {0x2F3C,0xC,0x21,0x7000,0xA82A};
pascal VideoDigitizerError VDSetInputColorSpaceMode(VideoDigitizerComponent ci,
short colorSpaceMode)
= {0x2F3C,0x2,0x22,0x7000,0xA82A};
pascal VideoDigitizerError VDGetInputColorSpaceMode(VideoDigitizerComponent ci,
short *colorSpaceMode)
= {0x2F3C,0x4,0x23,0x7000,0xA82A};
pascal VideoDigitizerError VDSetClipState(VideoDigitizerComponent ci,short clipEnable)
= {0x2F3C,0x2,0x24,0x7000,0xA82A};
pascal VideoDigitizerError VDGetClipState(VideoDigitizerComponent ci,short *clipEnable)
= {0x2F3C,0x4,0x25,0x7000,0xA82A};
pascal VideoDigitizerError VDSetClipRgn(VideoDigitizerComponent ci,RgnHandle clipRegion)
= {0x2F3C,0x4,0x26,0x7000,0xA82A};
pascal VideoDigitizerError VDClearClipRgn(VideoDigitizerComponent ci,RgnHandle clipRegion)
= {0x2F3C,0x4,0x27,0x7000,0xA82A};
pascal VideoDigitizerError VDGetCLUTInUse(VideoDigitizerComponent ci,CTabHandle *colorTableHandle)
= {0x2F3C,0x4,0x28,0x7000,0xA82A};
pascal VideoDigitizerError VDSetPLLFilterType(VideoDigitizerComponent ci,short pllType)
= {0x2F3C,0x2,0x29,0x7000,0xA82A};
pascal VideoDigitizerError VDGetPLLFilterType(VideoDigitizerComponent ci,short *pllType)
= {0x2F3C,0x4,0x2A,0x7000,0xA82A};
pascal VideoDigitizerError VDGetMaskandValue(VideoDigitizerComponent ci,unsigned short blendLevel,
long *mask,long *value)
= {0x2F3C,0xA,0x2B,0x7000,0xA82A};
pascal VideoDigitizerError VDSetMasterBlendLevel(VideoDigitizerComponent ci,
unsigned short *blendLevel)
= {0x2F3C,0x4,0x2C,0x7000,0xA82A};
pascal VideoDigitizerError VDSetPlayThruDestination(VideoDigitizerComponent ci,
PixMapHandle dest,Rect *destRect,MatrixRecord *m,RgnHandle mask)
= {0x2F3C,0x10,0x2D,0x7000,0xA82A};
pascal VideoDigitizerError VDSetPlayThruOnOff(VideoDigitizerComponent ci,short state)
= {0x2F3C,0x2,0x2E,0x7000,0xA82A};
pascal VideoDigitizerError VDSetFieldPreference(VideoDigitizerComponent ci,short fieldFlag)
= {0x2F3C,0x2,0x2F,0x7000,0xA82A};
pascal VideoDigitizerError VDGetFieldPreference(VideoDigitizerComponent ci,short *fieldFlag)
= {0x2F3C,0x4,0x30,0x7000,0xA82A};
/* 1 available selectors here */
pascal VideoDigitizerError VDPreflightDestination(VideoDigitizerComponent ci,
Rect *digitizerRect,PixMapHandle dest,Rect *destRect,MatrixRecord *m)
= {0x2F3C,0x10,0x32,0x7000,0xA82A};
pascal VideoDigitizerError VDPreflightGlobalRect(VideoDigitizerComponent ci,
GrafPtr theWindow,Rect *globalRect)
= {0x2F3C,0x8,0x33,0x7000,0xA82A};
pascal VideoDigitizerError VDSetPlayThruGlobalRect(VideoDigitizerComponent ci,
GrafPtr theWindow,Rect *globalRect)
= {0x2F3C,0x8,0x34,0x7000,0xA82A};
pascal VideoDigitizerError VDSetInputGammaRecord(VideoDigitizerComponent ci,
VDGamRecPtr inputGammaPtr)
= {0x2F3C,0x4,0x35,0x7000,0xA82A};
pascal VideoDigitizerError VDGetInputGammaRecord(VideoDigitizerComponent ci,
VDGamRecPtr *inputGammaPtr)
= {0x2F3C,0x4,0x36,0x7000,0xA82A};
pascal VideoDigitizerError VDSetBlackLevelValue(VideoDigitizerComponent ci,
unsigned short *blackLevel)
= {0x2F3C,0x4,0x37,0x7000,0xA82A};
pascal VideoDigitizerError VDGetBlackLevelValue(VideoDigitizerComponent ci,
unsigned short *blackLevel)
= {0x2F3C,0x4,0x38,0x7000,0xA82A};
pascal VideoDigitizerError VDSetWhiteLevelValue(VideoDigitizerComponent ci,
unsigned short *whiteLevel)
= {0x2F3C,0x4,0x39,0x7000,0xA82A};
pascal VideoDigitizerError VDGetWhiteLevelValue(VideoDigitizerComponent ci,
unsigned short *whiteLevel)
= {0x2F3C,0x4,0x3A,0x7000,0xA82A};
pascal VideoDigitizerError VDGetVideoDefaults(VideoDigitizerComponent ci,unsigned short *blackLevel,
unsigned short *whiteLevel,unsigned short *brightness,unsigned short *hue,
unsigned short *saturation,unsigned short *contrast,unsigned short *sharpness)
= {0x2F3C,0x1C,0x3B,0x7000,0xA82A};
pascal VideoDigitizerError VDGetNumberOfInputs(VideoDigitizerComponent ci,short *inputs)
= {0x2F3C,0x4,0x3C,0x7000,0xA82A};
pascal VideoDigitizerError VDGetInputFormat(VideoDigitizerComponent ci,short input,
short *format)
= {0x2F3C,0x6,0x3D,0x7000,0xA82A};
pascal VideoDigitizerError VDSetInput(VideoDigitizerComponent ci,short input)
= {0x2F3C,0x2,0x3E,0x7000,0xA82A};
pascal VideoDigitizerError VDGetInput(VideoDigitizerComponent ci,short *input)
= {0x2F3C,0x4,0x3F,0x7000,0xA82A};
pascal VideoDigitizerError VDSetInputStandard(VideoDigitizerComponent ci,short inputStandard)
= {0x2F3C,0x2,0x40,0x7000,0xA82A};
pascal VideoDigitizerError VDSetupBuffers(VideoDigitizerComponent ci, VdigBufferRecListHandle bufferList)
= {0x2F3C,0x4,0x41,0x7000,0xA82A};
pascal VideoDigitizerError VDGrabOneFrameAsync(VideoDigitizerComponent ci, short buffer)
= {0x2F3C,0x2,0x42,0x7000,0xA82A};
pascal long VDDone(VideoDigitizerComponent ci, short buffer)
= {0x2F3C,0x2,0x43,0x7000,0xA82A};
#ifdef __cplusplus
}
#endif
/* Sequence Grab Component */
typedef ComponentInstance SeqGrabComponent;
typedef ComponentInstance SGChannel;
#define SeqGrabComponentType 'barg'
#define SeqGrabChannelType 'sgch'
#define grabPictOffScreen (1)
#define sgFlagControlledGrab (1)
#define channelPlayNormal 0
#define channelPlayFast 1
#define channelPlayHighQuality 2
#define channelPlayAllData 4
enum {seqGrabToDisk = 1,seqGrabToMemory = 2,seqGrabDontUseTempMemory = 4,
seqGrabAppendToFile = 8,seqGrabDontAddMovieResource = 16};
typedef unsigned char SeqGrabDataOutputEnum;
enum {seqGrabRecord = 1,seqGrabPreview = 2,seqGrabPlayDuringRecord = 4};
typedef unsigned char SeqGrabUsageEnum;
enum {seqGrabHasBounds = 1,seqGrabHasVolume = 2, seqGrabHasDiscreteSamples = 4};
typedef unsigned char SeqGrabChannelInfoEnum;
struct SeqGrabFrameInfo {
long frameOffset;
long frameTime;
long frameSize;
SGChannel frameChannel;
long frameRefCon;
};
enum {
noDeviceForChannel = -9400,
grabTimeComplete = -9401,
cantDoThatInCurrentMode = -9402,
notEnoughMemoryToGrab = -9403,
notEnoughDiskSpaceToGrab = -9404,
couldntGetRequiredComponent = -9405,
badSGChannel = -9406,
seqGrabInfoNotAvailable = -9407,
deviceCantMeetRequest = -9408
};
typedef struct SeqGrabFrameInfo SeqGrabFrameInfo;
#ifdef __cplusplus
extern "C" {
#endif
pascal ComponentResult SGInitialize(SeqGrabComponent s)
= {0x2F3C,0x0,0x1,0x7000,0xA82A};
pascal ComponentResult SGSetDataOutput(SeqGrabComponent s,FSSpec *movieFile,
long whereFlags)
= {0x2F3C,0x8,0x2,0x7000,0xA82A};
pascal ComponentResult SGGetDataOutput(SeqGrabComponent s,FSSpec *movieFile,
long *whereFlags)
= {0x2F3C,0x8,0x3,0x7000,0xA82A};
pascal ComponentResult SGSetGWorld(SeqGrabComponent s,CGrafPtr gp,GDHandle gd)
= {0x2F3C,0x8,0x4,0x7000,0xA82A};
pascal ComponentResult SGGetGWorld(SeqGrabComponent s,CGrafPtr *gp,GDHandle *gd)
= {0x2F3C,0x8,0x5,0x7000,0xA82A};
pascal ComponentResult SGNewChannel(SeqGrabComponent s,OSType channelType,
SGChannel *ref)
= {0x2F3C,0x8,0x6,0x7000,0xA82A};
pascal ComponentResult SGDisposeChannel(SeqGrabComponent s,SGChannel c)
= {0x2F3C,0x4,0x7,0x7000,0xA82A};
pascal ComponentResult SGStartPreview(SeqGrabComponent s)
= {0x2F3C,0x0,0x10,0x7000,0xA82A};
pascal ComponentResult SGStartRecord(SeqGrabComponent s)
= {0x2F3C,0x0,0x11,0x7000,0xA82A};
pascal ComponentResult SGIdle(SeqGrabComponent s)
= {0x2F3C,0x0,0x12,0x7000,0xA82A};
pascal ComponentResult SGStop(SeqGrabComponent s)
= {0x2F3C,0x0,0x13,0x7000,0xA82A};
pascal ComponentResult SGPause(SeqGrabComponent s,Boolean pause)
= {0x2F3C,0x2,0x14,0x7000,0xA82A};
pascal ComponentResult SGPrepare(SeqGrabComponent s,Boolean prepareForPreview,
Boolean prepareForRecord)
= {0x2F3C,0x4,0x15,0x7000,0xA82A};
pascal ComponentResult SGRelease(SeqGrabComponent s)
= {0x2F3C,0x0,0x16,0x7000,0xA82A};
pascal Movie SGGetMovie(SeqGrabComponent s)
= {0x2F3C,0x0,0x17,0x7000,0xA82A};
pascal ComponentResult SGSetMaximumRecordTime(SeqGrabComponent s,unsigned long ticks)
= {0x2F3C,0x4,0x18,0x7000,0xA82A};
pascal ComponentResult SGGetMaximumRecordTime(SeqGrabComponent s,unsigned long *ticks)
= {0x2F3C,0x4,0x19,0x7000,0xA82A};
pascal ComponentResult SGGetStorageSpaceRemaining(SeqGrabComponent s,unsigned long *bytes)
= {0x2F3C,0x4,0x1A,0x7000,0xA82A};
pascal ComponentResult SGGetTimeRemaining(SeqGrabComponent s,long *ticksLeft)
= {0x2F3C,0x4,0x1B,0x7000,0xA82A};
pascal ComponentResult SGGrabPict(SeqGrabComponent s, PicHandle *p, const Rect *bounds,
short offscreenDepth, long grabPictFlags) =
{0x2F3C,0xE,0x1C,0x7000,0xA82A};
pascal ComponentResult SGGetLastMovieResID(SeqGrabComponent s, short *resID) =
{0x2F3C,0x4,0x1D,0x7000,0xA82A};
pascal ComponentResult SGSetFlags(SeqGrabComponent s, long sgFlags) =
{0x2F3C,0x4,0x1E,0x7000,0xA82A};
pascal ComponentResult SGGetFlags(SeqGrabComponent s, long *sgFlags) =
{0x2F3C,0x4,0x1F,0x7000,0xA82A};
/* General Channel Routines */
pascal ComponentResult SGSetChannelUsage(SGChannel c,long usage)
= {0x2F3C,0x4,0x80,0x7000,0xA82A};
pascal ComponentResult SGGetChannelUsage(SGChannel c,long *usage)
= {0x2F3C,0x4,0x81,0x7000,0xA82A};
pascal ComponentResult SGSetChannelBounds(SGChannel c,Rect *bounds)
= {0x2F3C,0x4,0x82,0x7000,0xA82A};
pascal ComponentResult SGGetChannelBounds(SGChannel c,const Rect *bounds)
= {0x2F3C,0x4,0x83,0x7000,0xA82A};
pascal ComponentResult SGSetChannelVolume(SGChannel c,short volume)
= {0x2F3C,0x2,0x84,0x7000,0xA82A};
pascal ComponentResult SGGetChannelVolume(SGChannel c,short *volume)
= {0x2F3C,0x4,0x85,0x7000,0xA82A};
pascal ComponentResult SGGetChannelInfo(SGChannel c,long *channelInfo)
= {0x2F3C,0x4,0x86,0x7000,0xA82A};
pascal ComponentResult SGSetChannelPlayFlags(SGChannel c, long playFlags)
= {0x2F3C,0x4,0x87,0x7000,0xA82A};
pascal ComponentResult SGGetChannelPlayFlags(SGChannel c, long *playFlags)
= {0x2F3C,0x4,0x88,0x7000,0xA82A};
pascal ComponentResult SGSetChannelMaxFrames(SGChannel c, long frameCount)
= {0x2F3C,0x4,0x89,0x7000,0xA82A};
pascal ComponentResult SGGetChannelMaxFrames(SGChannel c, long *frameCount)
= {0x2F3C,0x4,0x8A,0x7000,0xA82A};
pascal ComponentResult SGSetChannelRefCon(SGChannel c, long refCon)
= {0x2F3C,0x4,0x8B,0x7000,0xA82A};
#ifdef __cplusplus
}
#endif
/* Video Routines */
struct SGCompressInfo {
Ptr buffer;
unsigned long bufferSize;
unsigned char similarity;
unsigned char reserved;
};
typedef struct SGCompressInfo SGCompressInfo;
typedef pascal ComponentResult (*GrabProc)(SGChannel c, short bufferNum, long refCon);
typedef pascal ComponentResult (*GrabCompleteProc)(SGChannel c, short bufferNum, Boolean *done, long refCon);
typedef pascal ComponentResult (*DisplayProc)(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
typedef pascal ComponentResult (*CompressProc)(SGChannel c, short bufferNum, long refCon);
typedef pascal ComponentResult (*CompressCompleteProc)(SGChannel c, short bufferNum,
Boolean *done, SGCompressInfo *ci, long refCon);
typedef pascal ComponentResult (*AddFrameProc)(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale,
const SGCompressInfo *ci, long refCon);
typedef pascal ComponentResult (*TransferFrameProc)(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
struct VideoBottles {
short procCount;
GrabProc grabProc;
GrabCompleteProc grabCompleteProc;
DisplayProc displayProc;
CompressProc compressProc;
CompressCompleteProc compressCompleteProc;
AddFrameProc addFrameProc;
TransferFrameProc transferFrameProc;
};
typedef struct VideoBottles VideoBottles;
#ifdef __cplusplus
extern "C" {
#endif
pascal ComponentResult SGGetSrcVideoBounds(SGChannel c,Rect *r)
= {0x2F3C,0x4,0x100,0x7000,0xA82A};
pascal ComponentResult SGSetVideoRect(SGChannel c,Rect *r)
= {0x2F3C,0x4,0x101,0x7000,0xA82A};
pascal ComponentResult SGGetVideoRect(SGChannel c,Rect *r)
= {0x2F3C,0x4,0x102,0x7000,0xA82A};
pascal ComponentResult SGGetVideoCompressorType(SGChannel c,OSType *compressorType)
= {0x2F3C,0x4,0x103,0x7000,0xA82A};
pascal ComponentResult SGSetVideoCompressorType(SGChannel c,OSType compressorType)
= {0x2F3C,0x4,0x104,0x7000,0xA82A};
pascal ComponentResult SGSetVideoCompressor(SGChannel c,short depth,CompressorComponent compressor,
CodecQ spatialQuality,CodecQ temporalQuality,long keyFrameRate)
= {0x2F3C,0x12,0x105,0x7000,0xA82A};
pascal ComponentResult SGGetVideoCompressor(SGChannel c,short *depth,CompressorComponent *compressor,
CodecQ *spatialQuality,CodecQ *temporalQuality,long *keyFrameRate)
= {0x2F3C,0x14,0x106,0x7000,0xA82A};
pascal ComponentInstance SGGetVideoDigitizerComponent(SGChannel c)
= {0x2F3C,0,263,0x7000,0xA82A};
pascal ComponentResult SGSetVideoDigitizerComponent(SGChannel c, ComponentInstance vdig)
= {0x2F3C,4,264,0x7000,0xA82A};
pascal ComponentResult SGVideoDigitizerChanged(SGChannel c)
= {0x2F3C,0,265,0x7000,0xA82A};
pascal ComponentResult SGSetVideoBottlenecks(SGChannel c, VideoBottles *vb)
= {0x2F3C,4,266,0x7000,0xA82A};
pascal ComponentResult SGGetVideoBottlenecks(SGChannel c, VideoBottles *vb)
= {0x2F3C,4,267,0x7000,0xA82A};
pascal ComponentResult SGGrabFrame(SGChannel c, short bufferNum)
= {0x2F3C,2,268,0x7000,0xA82A};
pascal ComponentResult SGGrabFrameComplete(SGChannel c, short bufferNum, Boolean *done)
= {0x2F3C,6,269,0x7000,0xA82A};
pascal ComponentResult SGDisplayFrame(SGChannel c, short bufferNum, MatrixRecord *mp,
RgnHandle clipRgn)
= {0x2F3C,10,270,0x7000,0xA82A};
pascal ComponentResult SGCompressFrame(SGChannel c, short bufferNum)
= {0x2F3C,2,271,0x7000,0xA82A};
pascal ComponentResult SGCompressFrameComplete(SGChannel c, short bufferNum,
Boolean *done, SGCompressInfo *ci)
= {0x2F3C,10,272,0x7000,0xA82A};
pascal ComponentResult SGAddFrame(SGChannel c, short bufferNum, TimeValue atTime,
TimeScale scale, const SGCompressInfo *ci)
= {0x2F3C,14,273,0x7000,0xA82A};
pascal ComponentResult SGTransferFrameForCompress(SGChannel c, short bufferNum,
MatrixRecord *mp, RgnHandle clipRgn)
= {0x2F3C,10,274,0x7000,0xA82A};
pascal ComponentResult SGSetCompressBuffer(SGChannel c, short depth, const Rect *compressSize)
= {0x2F3C,6,275,0x7000,0xA82A};
pascal ComponentResult SGGetCompressBuffer(SGChannel c, short *depth, Rect *compressSize)
= {0x2F3C,8,276,0x7000,0xA82A};
pascal ComponentResult SGGetBufferInfo(SGChannel c, short bufferNum,
PixMapHandle *bufferPM, Rect *bufferRect,GWorldPtr *compressBuffer,
Rect *compressBufferRect)
= {0x2F3C,18,277,0x7000,0xA82A};
/* Sound Routines */
pascal ComponentResult SGSetSoundInputDriver(SGChannel c,const Str255 driverName)
= {0x2F3C,0x4,0x100,0x7000,0xA82A};
pascal long SGGetSoundInputDriver(SGChannel c)
= {0x2F3C,0x0,0x101,0x7000,0xA82A};
pascal ComponentResult SGSoundInputDriverChanged(SGChannel c)
= {0x2F3C,0x0,0x102,0x7000,0xA82A};
pascal ComponentResult SGSetSoundRecordChunkSize(SGChannel c,long seconds)
= {0x2F3C,0x4,0x103,0x7000,0xA82A};
pascal long SGGetSoundRecordChunkSize(SGChannel c)
= {0x2F3C,0x0,0x104,0x7000,0xA82A};
pascal ComponentResult SGSetSoundInputRate(SGChannel c,Fixed rate)
= {0x2F3C,0x4,0x105,0x7000,0xA82A};
pascal Fixed SGGetSoundInputRate(SGChannel c)
= {0x2F3C,0x0,0x106,0x7000,0xA82A};
/* calls from seqGrab to Channel */
pascal ComponentResult SGInitChannel(SGChannel c,SeqGrabComponent owner)
= {0x2F3C,0x4,0x180,0x7000,0xA82A};
pascal ComponentResult SGWriteSamples(SGChannel c,Movie m,AliasHandle theFile)
= {0x2F3C,0x8,0x181,0x7000,0xA82A};
pascal ComponentResult SGGetDataRate(SGChannel c,long *bytesPerSecond)
= {0x2F3C,0x4,0x182,0x7000,0xA82A};
/* calls from Channel to seqGrab */
pascal ComponentResult SGWriteMovieData(SeqGrabComponent s,SGChannel c,
Ptr p,long len,long *offset)
= {0x2F3C,0x10,0x100,0x7000,0xA82A};
pascal ComponentResult SGAddFrameReference(SeqGrabComponent s,SeqGrabFrameInfo *frameInfo)
= {0x2F3C,0x4,0x101,0x7000,0xA82A};
pascal ComponentResult SGGetNextFrameReference(SeqGrabComponent s,SeqGrabFrameInfo *frameInfo,
TimeValue *frameDuration,long *frameNumber)
= {0x2F3C,0xC,0x102,0x7000,0xA82A};
pascal ComponentResult SGGetTimeBase(SeqGrabComponent s,TimeBase *tb)
= {0x2F3C,0x4,0x103,0x7000,0xA82A};
#ifdef __cplusplus
}
#endif
enum {
kSGInitializeSelect = 0x1,
kSGSetDataOutputSelect = 0x2,
kSGGetDataOutputSelect = 0x3,
kSGSetGWorldSelect = 0x4,
kSGGetGWorldSelect = 0x5,
kSGNewChannelSelect = 0x6,
kSGDisposeChannelSelect = 0x7,
kSGStartPreviewSelect = 0x10,
kSGStartRecordSelect = 0x11,
kSGIdleSelect = 0x12,
kSGStopSelect = 0x13,
kSGPauseSelect = 0x14,
kSGPrepareSelect = 0x15,
kSGReleaseSelect = 0x16,
kSGGetMovieSelect = 0x17,
kSGSetMaximumRecordTimeSelect = 0x18,
kSGGetMaximumRecordTimeSelect = 0x19,
kSGGetStorageSpaceRemainingSelect = 0x1a,
kSGGetTimeRemainingSelect = 0x1b,
kSGGrabPictSelect = 0x1c,
kSGGetLastMovieResIDSelect = 0x1d,
kSGSetFlagsSelect = 0x1e,
kSGGetFlagsSelect = 0x1f,
kSGCSetChannelUsageSelect = 0x80,
kSGCGetChannelUsageSelect = 0x81,
kSGCSetChannelBoundsSelect = 0x82,
kSGCGetChannelBoundsSelect = 0x83,
kSGCSetChannelVolumeSelect = 0x84,
kSGCGetChannelVolumeSelect = 0x85,
kSGCGetChannelInfoSelect = 0x86,
kSGCSetChannelPlayFlagsSelect = 0x87,
kSGCGetChannelPlayFlagsSelect = 0x88,
kSGCSetChannelMaxFramesSelect = 0x89,
kSGCGetChannelMaxFramesSelect = 0x8a,
kSGCSetChannelRefConSelect = 0x8b,
kSGCGetSrcVideoBoundsSelect = 0x100,
kSGCSetVideoRectSelect = 0x101,
kSGCGetVideoRectSelect = 0x102,
kSGCGetVideoCompressorTypeSelect = 0x103,
kSGCSetVideoCompressorTypeSelect = 0x104,
kSGCSetVideoCompressorSelect = 0x105,
kSGCGetVideoCompressorSelect = 0x106,
kSGCGetVideoDigitizerComponentSelect = 0x107,
kSGCSetVideoDigitizerComponentSelect = 0x108,
kSGCVideoDigitizerChangedSelect = 0x109,
kSGCSetVideoBottlenecksSelect = 0x10a,
kSGCGetVideoBottlenecksSelect = 0x10b,
kSGCGrabFrameSelect = 0x10c,
kSGCGrabFrameCompleteSelect = 0x10d,
kSGCDisplayFrameSelect = 0x10e,
kSGCCompressFrameSelect = 0x10f,
kSGCCompressFrameCompleteSelect = 0x110,
kSGCAddFrameSelect = 0x111,
kSGCTransferFrameForCompressSelect = 0x112,
kSGCSetCompressBufferSelect = 0x113,
kSGCGetCompressBufferSelect = 0x114,
kSGCGetBufferInfoSelect = 0x115,
kSGCSetSoundInputDriverSelect = 0x100,
kSGCGetSoundInputDriverSelect = 0x101,
kSGCSoundInputDriverChangedSelect = 0x102,
kSGCSetSoundRecordChunkSizeSelect = 0x103,
kSGCGetSoundRecordChunkSizeSelect = 0x104,
kSGCSetSoundInputRateSelect = 0x105,
kSGCGetSoundInputRateSelect = 0x106,
kSGCInitChannelSelect = 0x180,
kSGCWriteSamplesSelect = 0x181,
kSGCGetDataRateSelect = 0x182,
kSGWriteMovieDataSelect = 0x100,
kSGAddFrameReferenceSelect = 0x101,
kSGGetNextFrameReferenceSelect = 0x102,
kSGGetTimeBaseSelect = 0x103
};
#endif