home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Graphics⁄Sound / PICTS to Movie / QuickTime Includes / QuickTimeComponents.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-08  |  32.4 KB  |  877 lines  |  [TEXT/MPS ]

  1.  
  2. /************************************************************
  3.  
  4. Created: Saturday, August 17, 1991 at 10:03 AM
  5.  QuickTimeComponents.h
  6.  C Interface to the Macintosh Libraries
  7.  
  8.  
  9.  Copyright Apple Computer, Inc. 1991
  10.  All rights reserved
  11.  
  12.  
  13.  
  14. ************************************************************/
  15.  
  16.  
  17. #ifndef __QUICKTIMECOMPONENTS__
  18. #define __QUICKTIMECOMPONENTS__
  19.  
  20. #ifndef __COMPONENTS__
  21. #include <Components.h>
  22. #endif
  23.  
  24. #ifndef __IMAGECOMPRESSION__
  25. #include <ImageCompression.h>
  26. #endif
  27.  
  28. #ifndef __MOVIES__
  29. #include <Movies.h>
  30. #endif
  31.  
  32. #ifndef __QUICKDRAW__
  33. #include <QuickDraw.h>
  34. #endif
  35.  
  36. #ifndef __VIDEO__
  37. #include <Video.h>
  38. #endif
  39.  
  40.  
  41. enum {
  42.  
  43.  
  44. /*****
  45.  
  46.  Clock Component
  47.  
  48. *****/
  49.  
  50. #define clockComponentType 'clok'
  51. #define systemTickClock 'tick'            /* subtype: 60ths since boot */
  52. #define systemMicrosecondClock 'micr'    /* subtype: 1000000ths since boot */
  53.  
  54.  
  55.  kClockRateIsLinear = 1,
  56.  kClockImplementsCallBacks = 2
  57.  
  58. };
  59.  
  60. enum {kClockGetClockTimeSelect = 1,kClockSetClockTimeSelect = 2,kClockNewCallBackSelect,
  61.  kClockDisposeCallBackSelect,kClockCallMeWhenSelect,kClockCancelCallBackSelect,
  62.  kClockRateChangedSelect,kClockTimeChangedSelect,kClockSetTimeBaseSelect};
  63. typedef unsigned  ClockComponentSelectors;
  64.  
  65.  
  66. #ifdef __cplusplus
  67. extern "C" {
  68. #endif
  69. pascal ComponentResult GetClockTime(ComponentInstance aClock,TimeRecord *out)
  70.  = {0x2F3C,0x4,0x1,0x7000,0xA82A}; 
  71. pascal QTCallBack ClockNewCallBack(ComponentInstance aClock,TimeBase tb,
  72.  short callBackType)
  73.  = {0x2F3C,0x6,0x1,0x7000,0xA82A}; 
  74. pascal ComponentResult ClockDisposeCallBack(ComponentInstance aClock,QTCallBack cb)
  75.  = {0x2F3C,0x4,0x1,0x7000,0xA82A}; 
  76. pascal ComponentResult ClockCallMeWhen(ComponentInstance clock,QTCallBack cb,
  77.  long param1,long param2,long param3)
  78.  = {0x2F3C,0x10,0x1,0x7000,0xA82A}; 
  79. pascal ComponentResult ClockCancelCallBack(ComponentInstance clock,QTCallBack cb)
  80.  = {0x2F3C,0x4,0x1,0x7000,0xA82A}; 
  81. pascal ComponentResult ClockRateChanged(ComponentInstance clock,QTCallBack cb)
  82.  = {0x2F3C,0x4,0x1,0x7000,0xA82A}; 
  83. pascal ComponentResult ClockTimeChanged(ComponentInstance clock,QTCallBack cb)
  84.  = {0x2F3C,0x4,0x1,0x7000,0xA82A}; 
  85. pascal ComponentResult ClockSetTimeBase(ComponentInstance clock,TimeBase tb)
  86.  = {0x2F3C,0x4,0x1,0x7000,0xA82A}; 
  87.  
  88. #ifdef __cplusplus
  89. }
  90. #endif
  91. enum {
  92.  
  93.  
  94. /*
  95.  Video Digitizer Component
  96.  
  97.  
  98.   Standard type for video digitizers */
  99.  
  100.  videoDigitizerComponentType = 'vdig',
  101.  vdigInterfaceRev = 2L,
  102.  
  103.  
  104. /* Input Format Standards */
  105.  
  106.  ntscIn = 0    ,                        /* ntsc input format */
  107.  palIn = 1    ,                        /* pal input format */
  108.  secamIn = 2,                            /* secam input format */
  109.  
  110.  
  111. /* Input Formats */
  112.  compositeIn = 0    ,                    /* input is composite format */
  113.  sVideoIn = 1    ,                    /* input is sVideo format */
  114.  rgbComponentIn = 2        ,            /* input is rgb component format */
  115.     
  116.  
  117. /* Video Digitizer PlayThru States */
  118.  vdPlayThruOff = 0,
  119.  vdPlayThruOn = 1,
  120.  
  121.  
  122. /* Input Color Space Modes */
  123.  vdDigitizerBW = 0    ,                /* black and white */
  124.  vdDigitizerRGB = 1    ,                /* rgb color */
  125.  
  126.  
  127. /* Phase Lock Loop Modes */
  128.  vdBroadcastMode = 0,                    /* Broadcast / Laser Disk video mode */
  129.  vdVTRMode = 1        ,                /* VCR / Magnetic media mode */
  130.  
  131. /* Field Select Options */
  132.  vdUseAnyField = 0,
  133.  vdUseOddField = 1,
  134.  vdUseEvenField = 2,
  135.  
  136. /* vdig types */
  137.  vdTypeBasic = 0,                        /* basic, no clipping */
  138.  vdTypeAlpha = 1,                        /* supports clipping with alpha channel */
  139.  vdTypeMask = 2    ,                    /* supports clipping with mask plane */
  140.  vdTypeKey = 3    ,                    /* supports clipping with key color(s) */
  141.  
  142.  
  143. /* Digitizer Error Codes */
  144.  
  145.  digiUnimpErr = -2201,                /* feature unimplemented */
  146.  qtParamErr = -2202    ,            /* bad input parameter ( out of range, etc ) */
  147.  matrixErr = -2203    ,                /* bad matrix, digitizer did nothing */
  148.  notExactMatrix = -2204    ,        /* warning of bad matrix, digitizer did its best */
  149.  noMoreKeyColors = -2205,            /* all key indexes in use */
  150.  notExactSize = -2206    ,            /* Can’t do exact size requested */
  151.  badDepth = -2207,                    /* Can’t digitize into this depth */
  152.  noDMA = -2208    ,                    /* Can’t do DMA digitizing ( i.e. can't go to requested dest) */
  153.  badCallOrder = -2209,            /* Usually due to a status call being called prior to being setup first */
  154.  
  155.  
  156. /* Digitizer Input Capability/Current Flags */
  157.  digiInDoesNTSC= (1L<<0),            /* digitizer supports NTSC input format */
  158.  digiInDoesPAL= (1L<<1)    ,        /* digitizer supports PAL input format */
  159.  digiInDoesSECAM= (1L<<2),            /* digitizer supports SECAM input format */
  160.  digiInDoesGenLock= (1L<<7)    ,    /* digitizer does genlock */
  161.  
  162.  digiInDoesComposite= (1L<<8),        /* digitizer supports composite input type */
  163.  digiInDoesSVideo = (1L<<9)    ,    /* digitizer supports S-Video input type */
  164.  digiInDoesComponent = (1L<<10)    ,/* digitizer supports component (rgb) input type */
  165.  digiInVTR_Broadcast = (1L<<11),/* digitizer can differentiate between the two */
  166.  
  167.  digiInDoesColor = (1L<<12)    ,    /* digitizer supports color */
  168.  digiInDoesBW = (1L<<13)    ,        /* digitizer supports black & white */
  169.  
  170.  
  171. /* Digitizer Input Current Flags (these are valid only during active operating conditions) */
  172.  digiInSignalLock = (1L<<31),        /* digitizer detects input signal is locked - this bit = horiz lock || vertical lock */
  173.  
  174.  
  175. /* Digitizer Output Capability/Current Flags */
  176.  digiOutDoes1 = (1L<<0)    ,        /* digitizer supports 1 bit pixels */
  177.  digiOutDoes2 = (1L<<1)    ,        /* digitizer supports 2 bit pixels */
  178.  digiOutDoes4 = (1L<<2)    ,        /* digitizer supports 4 bit pixels */
  179.  digiOutDoes8 = (1L<<3)    ,        /* digitizer supports 8 bit pixels */
  180.  digiOutDoes16 = (1L<<4)    ,        /* digitizer supports 16 bit pixels */
  181.  digiOutDoes32 = (1L<<5)    ,        /* digitizer supports 32 bit pixels */
  182.  digiOutDoesDither = (1L<<6),        /* digitizer dithers in indexed modes */
  183.  digiOutDoesStretch = (1L<<7),        /* digitizer can arbitrarily stretch */
  184.  digiOutDoesShrink = (1L<<8),        /* digitizer can arbitrarily shrink */
  185.  digiOutDoesMask = (1L<<9)    ,        /* digitizer can mask to clipping regions */
  186.  
  187.  digiOutDoesDouble = (1L<<11),        /* digitizer can stretch to exactly double size */
  188.  digiOutDoesQuad = (1L<<12)        ,/* digitizer can stretch exactly quadruple size */
  189.  digiOutDoesQuarter = (1L<<13)    ,    /* digitizer can shrink to exactly quarter size */
  190.  digiOutDoesSixteenth = (1L<<14),    /* digitizer can shrink to exactly sixteenth size */
  191.  
  192.  digiOutDoesRotate = (1L<<15)    ,    /* digitizer supports rotate transformations */
  193.  digiOutDoesHorizFlip = (1L<<16),    /* digitizer supports horizontal flips Sx < 0 */
  194.  digiOutDoesVertFlip = (1L<<17),    /* digitizer supports vertical flips Sy < 0 */
  195.  digiOutDoesSkew = (1L<<18)        ,/* digitizer supports skew (shear, twist) */
  196.  digiOutDoesBlend = (1L<<19),
  197.  digiOutDoesWarp = (1L<<20),
  198.  
  199.  digiOutDoesHW_DMA = (1L<<21)    ,    /* digitizer not constrained to local device */
  200.  digiOutDoesHWPlayThru = (1L<<22),    /* digitizer doesn't need time to play thru */
  201.  digiOutDoesILUT = (1L<<23)        ,    /* digitizer does inverse LUT for index modes */
  202.  digiOutDoesKeyColor = (1L<<24)    ,    /* digitizer does key color functions too */
  203.  digiOutDoesAsyncGrabs = (1L<<25)    /* digitizer supports async grabs */
  204.  
  205. };
  206.  
  207. typedef ComponentInstance VideoDigitizerComponent;
  208. typedef ComponentResult VideoDigitizerError;
  209.  
  210. /* Types */
  211. struct DigitizerInfo {
  212.  short vdigType;
  213.  long inputCapabilityFlags;
  214.  long outputCapabilityFlags;
  215.  long inputCurrentFlags;
  216.  long outputCurrentFlags;
  217.  short slot;                            /* temporary for connection purposes */
  218.  GDHandle gdh;                            /* temporary for digitizers that have preferred screen */
  219.  GDHandle maskgdh;                        /* temporary for digitizers that have mask planes */
  220.  short minDestHeight;                    /* Smallest resizable height */
  221.  short minDestWidth;                    /* Smallest resizable width */
  222.  short maxDestHeight;                    /* Largest resizable height */
  223.  short maxDestWidth;                    /* Largest resizable height */
  224.  short blendLevels;                        /* Number of blend levels supported (2 if 1 bit mask) */
  225.  long Private;                            /* reserved */
  226. };
  227.  
  228. typedef struct DigitizerInfo DigitizerInfo;
  229.  
  230. typedef struct {
  231.     PixMapHandle    dest;
  232.     Point            location;
  233.     long            reserved;
  234. } VdigBufferRec;
  235.  
  236. struct VdigBufferRecList {
  237.     short            count;
  238.     MatrixRecordPtr    matrix;
  239.     RgnHandle        mask;
  240.     VdigBufferRec    list[1];
  241. };
  242.  
  243. typedef struct VdigBufferRecList VdigBufferRecList;
  244. typedef VdigBufferRecList *VdigBufferRecListPtr, **VdigBufferRecListHandle;
  245. typedef pascal void (*VdigIntProc)(long flags, long refcon);
  246.  
  247. enum {
  248.  
  249.  
  250. /* Video Digitizer Interface */
  251.  kSelectVDGetMaxSrcRect = 1,
  252.  kSelectVDGetActiveSrcRect = 2,
  253.  kSelectVDSetDigitizerRect = 3,
  254.  kSelectVDGetDigitizerRect = 4,
  255.  kSelectVDGetVBlankRect = 5,
  256.  kSelectVDGetMaskPixMap = 6,
  257.  
  258. /* 1 available selector here */
  259.  
  260.  kSelectVDGetPlayThruDestination = 8,
  261.  kSelectVDUseThisCLUT = 9,
  262.  kSelectVDSetInputGammaValue = 10,
  263.  kSelectVDGetInputGammaValue = 11,
  264.  kSelectVDSetBrightness = 12,
  265.  kSelectVDGetBrightness = 13,
  266.  kSelectVDSetContrast = 14,
  267.  kSelectVDSetHue = 15,
  268.  kSelectVDSetSharpness = 16,
  269.  kSelectVDSetSaturation = 17,
  270.  kSelectVDGetContrast = 18,
  271.  kSelectVDGetHue = 19,
  272.  kSelectVDGetSharpness = 20
  273. };
  274. enum {
  275.  kSelectVDGetSaturation = 21,
  276.  kSelectVDGrabOneFrame = 22,
  277.  kSelectVDGetMaxAuxBuffer = 23,
  278.  
  279. /* 1 available selector here */
  280.  
  281.  kSelectVDGetDigitizerInfo = 25,
  282.  kSelectVDGetCurrentFlags = 26,
  283.  kSelectVDSetKeyColor = 27,
  284.  kSelectVDGetKeyColor = 28,
  285.  kSelectVDAddKeyColor = 29,
  286.  kSelectVDGetNextKeyColor = 30,
  287.  kSelectVDSetKeyColorRange = 31,
  288.  kSelectVDGetKeyColorRange = 32,
  289.  kSelectVDSetDigitizerUserInterrupt = 33,
  290.  kSelectVDSetInputColorSpaceMode = 34,
  291.  kSelectVDGetInputColorSpaceMode = 35,
  292.  kSelectVDSetClipState = 36,
  293.  kSelectVDGetClipState = 37,
  294.  kSelectVDSetClipRgn = 38,
  295.  kSelectVDClearClipRgn = 39,
  296.  kSelectVDGetCLUTInUse = 40
  297. };
  298. enum {
  299.  kSelectVDSetPLLFilterType = 41,
  300.  kSelectVDGetPLLFilterType = 42,
  301.  kSelectVDGetMaskandValue = 43,
  302.  kSelectVDSetMasterBlendLevel = 44,
  303.  kSelectVDSetPlayThruDestination = 45,
  304.  kSelectVDSetPlayThruOnOff = 46,
  305.  kSelectVDSetFieldPreference = 47,
  306.  kSelectVDGetFieldPreference = 48,
  307.  
  308. /* 1 available selectors here */
  309.  
  310.  kSelectVDPreflightDestination = 50,
  311.  kSelectVDPreflightGlobalRect = 51,
  312.  kSelectVDSetPlayThruGlobalRect = 52,
  313.  kSelectVDSetInputGammaRecord = 53,
  314.  kSelectVDGetInputGammaRecord = 54,
  315.  kSelectVDSetBlackLevelValue = 55,
  316.  kSelectVDGetBlackLevelValue = 56,
  317.  kSelectVDSetWhiteLevelValue = 57,
  318.  kSelectVDGetWhiteLevelValue = 58,
  319.  kSelectVDGetVideoDefaults = 59,
  320.  kSelectVDGetNumberOfInputs = 60
  321. };
  322. enum {
  323.  kSelectVDGetInputFormat = 61,
  324.  kSelectVDSetInput = 62,
  325.  kSelectVDGetInput = 63,
  326.  kSelectVDSetInputStandard = 64,
  327.  kSelectVDSetupBuffers = 65,
  328.  kSelectVDGrabOneFrameAsync = 66,
  329.  kSelectVDDone = 67,
  330.  
  331.  kvdigSelectors = 67
  332. };
  333.  
  334. #ifdef __cplusplus
  335. extern "C" {
  336. #endif
  337. pascal VideoDigitizerError VDGetMaxSrcRect(VideoDigitizerComponent ci,short inputStd,
  338.  Rect *maxSrcRect)
  339.  = {0x2F3C,0x6,0x1,0x7000,0xA82A}; 
  340. pascal VideoDigitizerError VDGetActiveSrcRect(VideoDigitizerComponent ci,short inputStd,
  341.  Rect *activeSrcRect)
  342.  = {0x2F3C,0x6,0x2,0x7000,0xA82A}; 
  343. pascal VideoDigitizerError VDSetDigitizerRect(VideoDigitizerComponent ci,Rect *digitizerRect)
  344.  = {0x2F3C,0x4,0x3,0x7000,0xA82A}; 
  345. pascal VideoDigitizerError VDGetDigitizerRect(VideoDigitizerComponent ci,Rect *digitizerRect)
  346.  = {0x2F3C,0x4,0x4,0x7000,0xA82A}; 
  347. pascal VideoDigitizerError VDGetVBlankRect(VideoDigitizerComponent ci,short inputStd,
  348.  Rect *vBlankRect)
  349.  = {0x2F3C,0x6,0x5,0x7000,0xA82A}; 
  350. pascal VideoDigitizerError VDGetMaskPixMap(VideoDigitizerComponent ci,PixMapHandle maskPixMap)
  351.  = {0x2F3C,0x4,0x6,0x7000,0xA82A}; 
  352. pascal VideoDigitizerError VDGetPlayThruDestination(VideoDigitizerComponent ci,
  353.  PixMapHandle *dest,Rect *destRect,MatrixRecord *m,RgnHandle *mask)
  354.  = {0x2F3C,0x10,0x8,0x7000,0xA82A}; 
  355. pascal VideoDigitizerError VDUseThisCLUT(VideoDigitizerComponent ci,CTabHandle colorTableHandle)
  356.  = {0x2F3C,0x4,0x9,0x7000,0xA82A}; 
  357. pascal VideoDigitizerError VDSetInputGammaValue(VideoDigitizerComponent ci,
  358.  Fixed channel1,Fixed channel2,Fixed channel3)
  359.  = {0x2F3C,0xC,0xA,0x7000,0xA82A}; 
  360. pascal VideoDigitizerError VDGetInputGammaValue(VideoDigitizerComponent ci,
  361.  Fixed *channel1,Fixed *channel2,Fixed *channel3)
  362.  = {0x2F3C,0xC,0xB,0x7000,0xA82A}; 
  363. pascal VideoDigitizerError VDSetBrightness(VideoDigitizerComponent ci,unsigned short *brightness)
  364.  = {0x2F3C,0x4,0xC,0x7000,0xA82A}; 
  365. pascal VideoDigitizerError VDGetBrightness(VideoDigitizerComponent ci,unsigned short *brightness)
  366.  = {0x2F3C,0x4,0xD,0x7000,0xA82A}; 
  367. pascal VideoDigitizerError VDSetContrast(VideoDigitizerComponent ci,unsigned short *contrast)
  368.  = {0x2F3C,0x4,0xE,0x7000,0xA82A}; 
  369. pascal VideoDigitizerError VDSetHue(VideoDigitizerComponent ci,unsigned short *hue)
  370.  = {0x2F3C,0x4,0xF,0x7000,0xA82A}; 
  371. pascal VideoDigitizerError VDSetSharpness(VideoDigitizerComponent ci,unsigned short *sharpness)
  372.  = {0x2F3C,0x4,0x10,0x7000,0xA82A}; 
  373. pascal VideoDigitizerError VDSetSaturation(VideoDigitizerComponent ci,unsigned short *saturation)
  374.  = {0x2F3C,0x4,0x11,0x7000,0xA82A}; 
  375. pascal VideoDigitizerError VDGetContrast(VideoDigitizerComponent ci,unsigned short *contrast)
  376.  = {0x2F3C,0x4,0x12,0x7000,0xA82A}; 
  377. pascal VideoDigitizerError VDGetHue(VideoDigitizerComponent ci,unsigned short *hue)
  378.  = {0x2F3C,0x4,0x13,0x7000,0xA82A}; 
  379. pascal VideoDigitizerError VDGetSharpness(VideoDigitizerComponent ci,unsigned short *sharpness)
  380.  = {0x2F3C,0x4,0x14,0x7000,0xA82A}; 
  381. pascal VideoDigitizerError VDGetSaturation(VideoDigitizerComponent ci,unsigned short *saturation)
  382.  = {0x2F3C,0x4,0x15,0x7000,0xA82A}; 
  383. pascal VideoDigitizerError VDGrabOneFrame(VideoDigitizerComponent ci)
  384.  = {0x2F3C,0x0,0x16,0x7000,0xA82A}; 
  385. pascal VideoDigitizerError VDGetMaxAuxBuffer(VideoDigitizerComponent ci,PixMapHandle *pm,
  386.  Rect *r)
  387.  = {0x2F3C,0x8,0x17,0x7000,0xA82A}; 
  388. pascal VideoDigitizerError VDGetDigitizerInfo(VideoDigitizerComponent ci,DigitizerInfo *info)
  389.  = {0x2F3C,0x4,0x19,0x7000,0xA82A}; 
  390. pascal VideoDigitizerError VDGetCurrentFlags(VideoDigitizerComponent ci,long *inputCurrentFlag,
  391.  long *outputCurrentFlag)
  392.  = {0x2F3C,0x8,0x1A,0x7000,0xA82A}; 
  393. pascal VideoDigitizerError VDSetKeyColor(VideoDigitizerComponent ci,long index)
  394.  = {0x2F3C,0x4,0x1B,0x7000,0xA82A}; 
  395. pascal VideoDigitizerError VDGetKeyColor(VideoDigitizerComponent ci,long *index)
  396.  = {0x2F3C,0x4,0x1C,0x7000,0xA82A}; 
  397. pascal VideoDigitizerError VDAddKeyColor(VideoDigitizerComponent ci,long *index)
  398.  = {0x2F3C,0x4,0x1D,0x7000,0xA82A}; 
  399. pascal VideoDigitizerError VDGetNextKeyColor(VideoDigitizerComponent ci,long index)
  400.  = {0x2F3C,0x4,0x1E,0x7000,0xA82A}; 
  401. pascal VideoDigitizerError VDSetKeyColorRange(VideoDigitizerComponent ci,RGBColor *minRGB,
  402.  RGBColor *maxRGB)
  403.  = {0x2F3C,0x8,0x1F,0x7000,0xA82A}; 
  404. pascal VideoDigitizerError VDGetKeyColorRange(VideoDigitizerComponent ci,RGBColor *minRGB,
  405.  RGBColor *maxRGB)
  406.  = {0x2F3C,0x8,0x20,0x7000,0xA82A}; 
  407. pascal VideoDigitizerError    VDSetDigitizerUserInterrupt(VideoDigitizerComponent ci,
  408.  long flags, VdigIntProc userInterruptProc, long refcon)
  409.  = {0x2F3C,0xC,0x21,0x7000,0xA82A}; 
  410. pascal VideoDigitizerError VDSetInputColorSpaceMode(VideoDigitizerComponent ci,
  411.  short colorSpaceMode)
  412.  = {0x2F3C,0x2,0x22,0x7000,0xA82A}; 
  413. pascal VideoDigitizerError VDGetInputColorSpaceMode(VideoDigitizerComponent ci,
  414.  short *colorSpaceMode)
  415.  = {0x2F3C,0x4,0x23,0x7000,0xA82A}; 
  416. pascal VideoDigitizerError VDSetClipState(VideoDigitizerComponent ci,short clipEnable)
  417.  = {0x2F3C,0x2,0x24,0x7000,0xA82A}; 
  418. pascal VideoDigitizerError VDGetClipState(VideoDigitizerComponent ci,short *clipEnable)
  419.  = {0x2F3C,0x4,0x25,0x7000,0xA82A}; 
  420. pascal VideoDigitizerError VDSetClipRgn(VideoDigitizerComponent ci,RgnHandle clipRegion)
  421.  = {0x2F3C,0x4,0x26,0x7000,0xA82A}; 
  422. pascal VideoDigitizerError VDClearClipRgn(VideoDigitizerComponent ci,RgnHandle clipRegion)
  423.  = {0x2F3C,0x4,0x27,0x7000,0xA82A}; 
  424. pascal VideoDigitizerError VDGetCLUTInUse(VideoDigitizerComponent ci,CTabHandle *colorTableHandle)
  425.  = {0x2F3C,0x4,0x28,0x7000,0xA82A}; 
  426. pascal VideoDigitizerError VDSetPLLFilterType(VideoDigitizerComponent ci,short pllType)
  427.  = {0x2F3C,0x2,0x29,0x7000,0xA82A}; 
  428. pascal VideoDigitizerError VDGetPLLFilterType(VideoDigitizerComponent ci,short *pllType)
  429.  = {0x2F3C,0x4,0x2A,0x7000,0xA82A}; 
  430. pascal VideoDigitizerError VDGetMaskandValue(VideoDigitizerComponent ci,unsigned short blendLevel,
  431.  long *mask,long *value)
  432.  = {0x2F3C,0xA,0x2B,0x7000,0xA82A}; 
  433. pascal VideoDigitizerError VDSetMasterBlendLevel(VideoDigitizerComponent ci,
  434.  unsigned short *blendLevel)
  435.  = {0x2F3C,0x4,0x2C,0x7000,0xA82A}; 
  436. pascal VideoDigitizerError VDSetPlayThruDestination(VideoDigitizerComponent ci,
  437.  PixMapHandle dest,Rect *destRect,MatrixRecord *m,RgnHandle mask)
  438.  = {0x2F3C,0x10,0x2D,0x7000,0xA82A}; 
  439. pascal VideoDigitizerError VDSetPlayThruOnOff(VideoDigitizerComponent ci,short state)
  440.  = {0x2F3C,0x2,0x2E,0x7000,0xA82A}; 
  441. pascal VideoDigitizerError VDSetFieldPreference(VideoDigitizerComponent ci,short fieldFlag)
  442.  = {0x2F3C,0x2,0x2F,0x7000,0xA82A}; 
  443. pascal VideoDigitizerError VDGetFieldPreference(VideoDigitizerComponent ci,short *fieldFlag)
  444.  = {0x2F3C,0x4,0x30,0x7000,0xA82A}; 
  445.  
  446. /* 1 available selectors here */
  447.  
  448. pascal VideoDigitizerError VDPreflightDestination(VideoDigitizerComponent ci,
  449.  Rect *digitizerRect,PixMapHandle dest,Rect *destRect,MatrixRecord *m)
  450.  = {0x2F3C,0x10,0x32,0x7000,0xA82A}; 
  451. pascal VideoDigitizerError VDPreflightGlobalRect(VideoDigitizerComponent ci,
  452.  GrafPtr theWindow,Rect *globalRect)
  453.  = {0x2F3C,0x8,0x33,0x7000,0xA82A}; 
  454. pascal VideoDigitizerError VDSetPlayThruGlobalRect(VideoDigitizerComponent ci,
  455.  GrafPtr theWindow,Rect *globalRect)
  456.  = {0x2F3C,0x8,0x34,0x7000,0xA82A}; 
  457. pascal VideoDigitizerError VDSetInputGammaRecord(VideoDigitizerComponent ci,
  458.  VDGamRecPtr inputGammaPtr)
  459.  = {0x2F3C,0x4,0x35,0x7000,0xA82A}; 
  460. pascal VideoDigitizerError VDGetInputGammaRecord(VideoDigitizerComponent ci,
  461.  VDGamRecPtr *inputGammaPtr)
  462.  = {0x2F3C,0x4,0x36,0x7000,0xA82A}; 
  463. pascal VideoDigitizerError VDSetBlackLevelValue(VideoDigitizerComponent ci,
  464.  unsigned short *blackLevel)
  465.  = {0x2F3C,0x4,0x37,0x7000,0xA82A}; 
  466. pascal VideoDigitizerError VDGetBlackLevelValue(VideoDigitizerComponent ci,
  467.  unsigned short *blackLevel)
  468.  = {0x2F3C,0x4,0x38,0x7000,0xA82A}; 
  469. pascal VideoDigitizerError VDSetWhiteLevelValue(VideoDigitizerComponent ci,
  470.  unsigned short *whiteLevel)
  471.  = {0x2F3C,0x4,0x39,0x7000,0xA82A}; 
  472. pascal VideoDigitizerError VDGetWhiteLevelValue(VideoDigitizerComponent ci,
  473.  unsigned short *whiteLevel)
  474.  = {0x2F3C,0x4,0x3A,0x7000,0xA82A}; 
  475. pascal VideoDigitizerError VDGetVideoDefaults(VideoDigitizerComponent ci,unsigned short *blackLevel,
  476.  unsigned short *whiteLevel,unsigned short *brightness,unsigned short *hue,
  477.  unsigned short *saturation,unsigned short *contrast,unsigned short *sharpness)
  478.  = {0x2F3C,0x1C,0x3B,0x7000,0xA82A}; 
  479. pascal VideoDigitizerError VDGetNumberOfInputs(VideoDigitizerComponent ci,short *inputs)
  480.  = {0x2F3C,0x4,0x3C,0x7000,0xA82A}; 
  481. pascal VideoDigitizerError VDGetInputFormat(VideoDigitizerComponent ci,short input,
  482.  short *format)
  483.  = {0x2F3C,0x6,0x3D,0x7000,0xA82A}; 
  484. pascal VideoDigitizerError VDSetInput(VideoDigitizerComponent ci,short input)
  485.  = {0x2F3C,0x2,0x3E,0x7000,0xA82A}; 
  486. pascal VideoDigitizerError VDGetInput(VideoDigitizerComponent ci,short *input)
  487.  = {0x2F3C,0x4,0x3F,0x7000,0xA82A}; 
  488. pascal VideoDigitizerError VDSetInputStandard(VideoDigitizerComponent ci,short inputStandard)
  489.  = {0x2F3C,0x2,0x40,0x7000,0xA82A}; 
  490. pascal VideoDigitizerError    VDSetupBuffers(VideoDigitizerComponent ci, VdigBufferRecListHandle bufferList)
  491.  = {0x2F3C,0x4,0x41,0x7000,0xA82A}; 
  492. pascal VideoDigitizerError    VDGrabOneFrameAsync(VideoDigitizerComponent ci, short buffer)
  493.  = {0x2F3C,0x2,0x42,0x7000,0xA82A}; 
  494. pascal long    VDDone(VideoDigitizerComponent ci, short buffer)
  495.  = {0x2F3C,0x2,0x43,0x7000,0xA82A}; 
  496. #ifdef __cplusplus
  497. }
  498. #endif
  499. /* Sequence Grab Component */
  500. typedef ComponentInstance SeqGrabComponent;
  501. typedef ComponentInstance SGChannel;
  502.  
  503.  
  504.  
  505.  
  506. #define SeqGrabComponentType 'barg'
  507. #define SeqGrabChannelType 'sgch'
  508.  
  509. #define grabPictOffScreen (1)
  510. #define sgFlagControlledGrab (1)
  511.  
  512. #define channelPlayNormal 0
  513. #define channelPlayFast 1
  514. #define channelPlayHighQuality 2
  515. #define channelPlayAllData 4
  516.  
  517. enum {seqGrabToDisk = 1,seqGrabToMemory = 2,seqGrabDontUseTempMemory = 4,
  518.  seqGrabAppendToFile = 8,seqGrabDontAddMovieResource = 16};
  519. typedef unsigned char SeqGrabDataOutputEnum;
  520.  
  521. enum {seqGrabRecord = 1,seqGrabPreview = 2,seqGrabPlayDuringRecord = 4};
  522. typedef unsigned char SeqGrabUsageEnum;
  523.  
  524. enum {seqGrabHasBounds = 1,seqGrabHasVolume = 2, seqGrabHasDiscreteSamples = 4};
  525. typedef unsigned char SeqGrabChannelInfoEnum;
  526.  
  527.  
  528. struct SeqGrabFrameInfo {
  529.  long frameOffset;
  530.  long frameTime;
  531.  long frameSize;
  532.  SGChannel frameChannel;
  533.  long frameRefCon;
  534. };
  535.  
  536. enum {
  537.  noDeviceForChannel = -9400,
  538.  grabTimeComplete = -9401,
  539.  cantDoThatInCurrentMode = -9402,
  540.  notEnoughMemoryToGrab = -9403,
  541.  notEnoughDiskSpaceToGrab = -9404,
  542.  couldntGetRequiredComponent = -9405,
  543.  badSGChannel = -9406,
  544.  seqGrabInfoNotAvailable = -9407,
  545.  deviceCantMeetRequest = -9408
  546. };
  547.  
  548. typedef struct SeqGrabFrameInfo SeqGrabFrameInfo;
  549.  
  550.  
  551. #ifdef __cplusplus
  552. extern "C" {
  553. #endif
  554. pascal ComponentResult SGInitialize(SeqGrabComponent s)
  555.  = {0x2F3C,0x0,0x1,0x7000,0xA82A}; 
  556.  
  557. pascal ComponentResult SGSetDataOutput(SeqGrabComponent s,FSSpec *movieFile,
  558.  long whereFlags)
  559.  = {0x2F3C,0x8,0x2,0x7000,0xA82A}; 
  560. pascal ComponentResult SGGetDataOutput(SeqGrabComponent s,FSSpec *movieFile,
  561.  long *whereFlags)
  562.  = {0x2F3C,0x8,0x3,0x7000,0xA82A}; 
  563.  
  564. pascal ComponentResult SGSetGWorld(SeqGrabComponent s,CGrafPtr gp,GDHandle gd)
  565.  = {0x2F3C,0x8,0x4,0x7000,0xA82A}; 
  566. pascal ComponentResult SGGetGWorld(SeqGrabComponent s,CGrafPtr *gp,GDHandle *gd)
  567.  = {0x2F3C,0x8,0x5,0x7000,0xA82A}; 
  568.  
  569. pascal ComponentResult SGNewChannel(SeqGrabComponent s,OSType channelType,
  570.  SGChannel *ref)
  571.  = {0x2F3C,0x8,0x6,0x7000,0xA82A}; 
  572. pascal ComponentResult SGDisposeChannel(SeqGrabComponent s,SGChannel c)
  573.  = {0x2F3C,0x4,0x7,0x7000,0xA82A}; 
  574.  
  575. pascal ComponentResult SGStartPreview(SeqGrabComponent s)
  576.  = {0x2F3C,0x0,0x10,0x7000,0xA82A}; 
  577. pascal ComponentResult SGStartRecord(SeqGrabComponent s)
  578.  = {0x2F3C,0x0,0x11,0x7000,0xA82A}; 
  579. pascal ComponentResult SGIdle(SeqGrabComponent s)
  580.  = {0x2F3C,0x0,0x12,0x7000,0xA82A}; 
  581. pascal ComponentResult SGStop(SeqGrabComponent s)
  582.  = {0x2F3C,0x0,0x13,0x7000,0xA82A}; 
  583.  
  584. pascal ComponentResult SGPause(SeqGrabComponent s,Boolean pause)
  585.  = {0x2F3C,0x2,0x14,0x7000,0xA82A}; 
  586.  
  587. pascal ComponentResult SGPrepare(SeqGrabComponent s,Boolean prepareForPreview,
  588.  Boolean prepareForRecord)
  589.  = {0x2F3C,0x4,0x15,0x7000,0xA82A}; 
  590. pascal ComponentResult SGRelease(SeqGrabComponent s)
  591.  = {0x2F3C,0x0,0x16,0x7000,0xA82A}; 
  592.  
  593. pascal Movie SGGetMovie(SeqGrabComponent s)
  594.  = {0x2F3C,0x0,0x17,0x7000,0xA82A}; 
  595.  
  596. pascal ComponentResult SGSetMaximumRecordTime(SeqGrabComponent s,unsigned long ticks)
  597.  = {0x2F3C,0x4,0x18,0x7000,0xA82A}; 
  598. pascal ComponentResult SGGetMaximumRecordTime(SeqGrabComponent s,unsigned long *ticks)
  599.  = {0x2F3C,0x4,0x19,0x7000,0xA82A}; 
  600.  
  601. pascal ComponentResult SGGetStorageSpaceRemaining(SeqGrabComponent s,unsigned long *bytes)
  602.  = {0x2F3C,0x4,0x1A,0x7000,0xA82A}; 
  603. pascal ComponentResult SGGetTimeRemaining(SeqGrabComponent s,long *ticksLeft)
  604.  = {0x2F3C,0x4,0x1B,0x7000,0xA82A}; 
  605. pascal ComponentResult SGGrabPict(SeqGrabComponent s, PicHandle *p, const Rect *bounds,
  606.  short offscreenDepth, long grabPictFlags) =
  607.  {0x2F3C,0xE,0x1C,0x7000,0xA82A};
  608.  
  609. pascal ComponentResult SGGetLastMovieResID(SeqGrabComponent s, short *resID) =
  610.  {0x2F3C,0x4,0x1D,0x7000,0xA82A};
  611.  
  612. pascal ComponentResult SGSetFlags(SeqGrabComponent s, long sgFlags) =
  613.  {0x2F3C,0x4,0x1E,0x7000,0xA82A};
  614.  
  615. pascal ComponentResult SGGetFlags(SeqGrabComponent s, long *sgFlags) =
  616.  {0x2F3C,0x4,0x1F,0x7000,0xA82A};
  617.  
  618.  
  619. /*   General Channel Routines   */
  620. pascal ComponentResult SGSetChannelUsage(SGChannel c,long usage)
  621.  = {0x2F3C,0x4,0x80,0x7000,0xA82A}; 
  622. pascal ComponentResult SGGetChannelUsage(SGChannel c,long *usage)
  623.  = {0x2F3C,0x4,0x81,0x7000,0xA82A}; 
  624.  
  625. pascal ComponentResult SGSetChannelBounds(SGChannel c,Rect *bounds)
  626.  = {0x2F3C,0x4,0x82,0x7000,0xA82A}; 
  627. pascal ComponentResult SGGetChannelBounds(SGChannel c,const Rect *bounds)
  628.  = {0x2F3C,0x4,0x83,0x7000,0xA82A}; 
  629.  
  630. pascal ComponentResult SGSetChannelVolume(SGChannel c,short volume)
  631.  = {0x2F3C,0x2,0x84,0x7000,0xA82A}; 
  632. pascal ComponentResult SGGetChannelVolume(SGChannel c,short *volume)
  633.  = {0x2F3C,0x4,0x85,0x7000,0xA82A}; 
  634.  
  635. pascal ComponentResult SGGetChannelInfo(SGChannel c,long *channelInfo)
  636.  = {0x2F3C,0x4,0x86,0x7000,0xA82A}; 
  637.  
  638. pascal ComponentResult SGSetChannelPlayFlags(SGChannel c, long playFlags)
  639.  = {0x2F3C,0x4,0x87,0x7000,0xA82A}; 
  640. pascal ComponentResult SGGetChannelPlayFlags(SGChannel c, long *playFlags)
  641.  = {0x2F3C,0x4,0x88,0x7000,0xA82A}; 
  642.  
  643. pascal ComponentResult SGSetChannelMaxFrames(SGChannel c, long frameCount)
  644.  = {0x2F3C,0x4,0x89,0x7000,0xA82A}; 
  645. pascal ComponentResult SGGetChannelMaxFrames(SGChannel c, long *frameCount)
  646.  = {0x2F3C,0x4,0x8A,0x7000,0xA82A}; 
  647.  
  648. pascal ComponentResult SGSetChannelRefCon(SGChannel c, long refCon)
  649.  = {0x2F3C,0x4,0x8B,0x7000,0xA82A}; 
  650.  
  651. #ifdef __cplusplus
  652. }
  653. #endif
  654. /* Video Routines */
  655.  
  656. struct SGCompressInfo {
  657.     Ptr                buffer;
  658.     unsigned long    bufferSize;
  659.     unsigned char    similarity;
  660.     unsigned char    reserved;
  661. };
  662. typedef struct SGCompressInfo SGCompressInfo;
  663.  
  664. typedef pascal ComponentResult (*GrabProc)(SGChannel c, short bufferNum, long refCon);
  665. typedef pascal ComponentResult (*GrabCompleteProc)(SGChannel c, short bufferNum, Boolean *done, long refCon);
  666. typedef pascal ComponentResult (*DisplayProc)(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  667. typedef pascal ComponentResult (*CompressProc)(SGChannel c, short bufferNum, long refCon);
  668. typedef pascal ComponentResult (*CompressCompleteProc)(SGChannel c, short bufferNum,
  669.                                         Boolean *done, SGCompressInfo *ci, long refCon);
  670. typedef pascal ComponentResult (*AddFrameProc)(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale,
  671.                             const SGCompressInfo *ci, long refCon);
  672. typedef pascal ComponentResult (*TransferFrameProc)(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  673.  
  674. struct VideoBottles {
  675.  short procCount;
  676.  GrabProc grabProc;
  677.  GrabCompleteProc grabCompleteProc;
  678.  DisplayProc displayProc;
  679.  CompressProc compressProc;
  680.  CompressCompleteProc compressCompleteProc;
  681.  AddFrameProc addFrameProc;
  682.  TransferFrameProc transferFrameProc;
  683. };
  684.  
  685. typedef struct VideoBottles VideoBottles;
  686.  
  687.  
  688. #ifdef __cplusplus
  689. extern "C" {
  690. #endif
  691. pascal ComponentResult SGGetSrcVideoBounds(SGChannel c,Rect *r)
  692.  = {0x2F3C,0x4,0x100,0x7000,0xA82A}; 
  693. pascal ComponentResult SGSetVideoRect(SGChannel c,Rect *r)
  694.  = {0x2F3C,0x4,0x101,0x7000,0xA82A}; 
  695. pascal ComponentResult SGGetVideoRect(SGChannel c,Rect *r)
  696.  = {0x2F3C,0x4,0x102,0x7000,0xA82A}; 
  697.  
  698. pascal ComponentResult SGGetVideoCompressorType(SGChannel c,OSType *compressorType)
  699.  = {0x2F3C,0x4,0x103,0x7000,0xA82A}; 
  700. pascal ComponentResult SGSetVideoCompressorType(SGChannel c,OSType compressorType)
  701.  = {0x2F3C,0x4,0x104,0x7000,0xA82A}; 
  702.  
  703. pascal ComponentResult SGSetVideoCompressor(SGChannel c,short depth,CompressorComponent compressor,
  704.  CodecQ spatialQuality,CodecQ temporalQuality,long keyFrameRate)
  705.  = {0x2F3C,0x12,0x105,0x7000,0xA82A}; 
  706. pascal ComponentResult SGGetVideoCompressor(SGChannel c,short *depth,CompressorComponent *compressor,
  707.  CodecQ *spatialQuality,CodecQ *temporalQuality,long *keyFrameRate)
  708.  = {0x2F3C,0x14,0x106,0x7000,0xA82A}; 
  709.  
  710. pascal ComponentInstance SGGetVideoDigitizerComponent(SGChannel c) 
  711.  = {0x2F3C,0,263,0x7000,0xA82A};
  712. pascal ComponentResult SGSetVideoDigitizerComponent(SGChannel c, ComponentInstance vdig)
  713.  = {0x2F3C,4,264,0x7000,0xA82A};
  714. pascal ComponentResult SGVideoDigitizerChanged(SGChannel c)
  715.  = {0x2F3C,0,265,0x7000,0xA82A};
  716.  
  717. pascal ComponentResult SGSetVideoBottlenecks(SGChannel c, VideoBottles *vb)
  718.  = {0x2F3C,4,266,0x7000,0xA82A};
  719. pascal ComponentResult SGGetVideoBottlenecks(SGChannel c, VideoBottles *vb)
  720.  = {0x2F3C,4,267,0x7000,0xA82A};
  721.  
  722. pascal ComponentResult SGGrabFrame(SGChannel c, short bufferNum)
  723.  = {0x2F3C,2,268,0x7000,0xA82A};
  724. pascal ComponentResult SGGrabFrameComplete(SGChannel c, short bufferNum, Boolean *done)
  725.  = {0x2F3C,6,269,0x7000,0xA82A};
  726.  
  727. pascal ComponentResult SGDisplayFrame(SGChannel c, short bufferNum, MatrixRecord *mp, 
  728.  RgnHandle clipRgn)
  729.  = {0x2F3C,10,270,0x7000,0xA82A};
  730.  
  731. pascal ComponentResult SGCompressFrame(SGChannel c, short bufferNum)
  732.  = {0x2F3C,2,271,0x7000,0xA82A};
  733. pascal ComponentResult SGCompressFrameComplete(SGChannel c, short bufferNum, 
  734.  Boolean *done, SGCompressInfo *ci)
  735.  = {0x2F3C,10,272,0x7000,0xA82A};
  736.  
  737. pascal ComponentResult SGAddFrame(SGChannel c, short bufferNum, TimeValue atTime, 
  738.  TimeScale scale, const SGCompressInfo *ci)
  739.  = {0x2F3C,14,273,0x7000,0xA82A};
  740.  
  741. pascal ComponentResult SGTransferFrameForCompress(SGChannel c, short bufferNum, 
  742.  MatrixRecord *mp, RgnHandle clipRgn)
  743.  = {0x2F3C,10,274,0x7000,0xA82A};
  744.  
  745. pascal ComponentResult SGSetCompressBuffer(SGChannel c, short depth, const Rect *compressSize)
  746.  = {0x2F3C,6,275,0x7000,0xA82A};
  747.  
  748. pascal ComponentResult SGGetCompressBuffer(SGChannel c, short *depth, Rect *compressSize)
  749.  = {0x2F3C,8,276,0x7000,0xA82A};
  750.  
  751. pascal ComponentResult SGGetBufferInfo(SGChannel c, short bufferNum, 
  752.  PixMapHandle *bufferPM, Rect *bufferRect,GWorldPtr *compressBuffer,
  753.  Rect *compressBufferRect) 
  754.  = {0x2F3C,18,277,0x7000,0xA82A};
  755.  
  756. /*   Sound Routines   */
  757. pascal ComponentResult SGSetSoundInputDriver(SGChannel c,const Str255 driverName)
  758.  = {0x2F3C,0x4,0x100,0x7000,0xA82A}; 
  759. pascal long SGGetSoundInputDriver(SGChannel c)
  760.  = {0x2F3C,0x0,0x101,0x7000,0xA82A}; 
  761. pascal ComponentResult SGSoundInputDriverChanged(SGChannel c)
  762.  = {0x2F3C,0x0,0x102,0x7000,0xA82A}; 
  763.  
  764. pascal ComponentResult SGSetSoundRecordChunkSize(SGChannel c,long seconds)
  765.  = {0x2F3C,0x4,0x103,0x7000,0xA82A}; 
  766. pascal long SGGetSoundRecordChunkSize(SGChannel c)
  767.  = {0x2F3C,0x0,0x104,0x7000,0xA82A}; 
  768.  
  769. pascal ComponentResult SGSetSoundInputRate(SGChannel c,Fixed rate)
  770.  = {0x2F3C,0x4,0x105,0x7000,0xA82A}; 
  771. pascal Fixed SGGetSoundInputRate(SGChannel c)
  772.  = {0x2F3C,0x0,0x106,0x7000,0xA82A}; 
  773.  
  774. /*   calls from seqGrab to Channel   */
  775. pascal ComponentResult SGInitChannel(SGChannel c,SeqGrabComponent owner)
  776.  = {0x2F3C,0x4,0x180,0x7000,0xA82A}; 
  777. pascal ComponentResult SGWriteSamples(SGChannel c,Movie m,AliasHandle theFile)
  778.  = {0x2F3C,0x8,0x181,0x7000,0xA82A}; 
  779. pascal ComponentResult SGGetDataRate(SGChannel c,long *bytesPerSecond)
  780.  = {0x2F3C,0x4,0x182,0x7000,0xA82A}; 
  781.  
  782. /*   calls from Channel to seqGrab   */
  783. pascal ComponentResult SGWriteMovieData(SeqGrabComponent s,SGChannel c,
  784.  Ptr p,long len,long *offset)
  785.  = {0x2F3C,0x10,0x100,0x7000,0xA82A}; 
  786. pascal ComponentResult SGAddFrameReference(SeqGrabComponent s,SeqGrabFrameInfo *frameInfo)
  787.  = {0x2F3C,0x4,0x101,0x7000,0xA82A}; 
  788. pascal ComponentResult SGGetNextFrameReference(SeqGrabComponent s,SeqGrabFrameInfo *frameInfo,
  789.  TimeValue *frameDuration,long *frameNumber)
  790.  = {0x2F3C,0xC,0x102,0x7000,0xA82A}; 
  791. pascal ComponentResult SGGetTimeBase(SeqGrabComponent s,TimeBase *tb)
  792.  = {0x2F3C,0x4,0x103,0x7000,0xA82A}; 
  793. #ifdef __cplusplus
  794. }
  795. #endif
  796.  
  797. enum {
  798. kSGInitializeSelect = 0x1,
  799. kSGSetDataOutputSelect = 0x2,
  800. kSGGetDataOutputSelect = 0x3,
  801. kSGSetGWorldSelect = 0x4,
  802. kSGGetGWorldSelect = 0x5,
  803. kSGNewChannelSelect = 0x6,
  804. kSGDisposeChannelSelect = 0x7,
  805. kSGStartPreviewSelect = 0x10,
  806. kSGStartRecordSelect = 0x11,
  807. kSGIdleSelect = 0x12,
  808. kSGStopSelect = 0x13,
  809. kSGPauseSelect = 0x14,
  810. kSGPrepareSelect = 0x15,
  811. kSGReleaseSelect = 0x16,
  812. kSGGetMovieSelect = 0x17,
  813. kSGSetMaximumRecordTimeSelect = 0x18,
  814. kSGGetMaximumRecordTimeSelect = 0x19,
  815. kSGGetStorageSpaceRemainingSelect = 0x1a,
  816. kSGGetTimeRemainingSelect = 0x1b,
  817. kSGGrabPictSelect = 0x1c,
  818. kSGGetLastMovieResIDSelect = 0x1d,
  819. kSGSetFlagsSelect = 0x1e,
  820. kSGGetFlagsSelect = 0x1f,
  821.  
  822. kSGCSetChannelUsageSelect = 0x80,
  823. kSGCGetChannelUsageSelect = 0x81,
  824. kSGCSetChannelBoundsSelect = 0x82,
  825. kSGCGetChannelBoundsSelect = 0x83,
  826. kSGCSetChannelVolumeSelect = 0x84,
  827. kSGCGetChannelVolumeSelect = 0x85,
  828. kSGCGetChannelInfoSelect = 0x86,
  829. kSGCSetChannelPlayFlagsSelect = 0x87,
  830. kSGCGetChannelPlayFlagsSelect = 0x88,
  831. kSGCSetChannelMaxFramesSelect = 0x89,
  832. kSGCGetChannelMaxFramesSelect = 0x8a,
  833. kSGCSetChannelRefConSelect = 0x8b,
  834.  
  835. kSGCGetSrcVideoBoundsSelect = 0x100,
  836. kSGCSetVideoRectSelect = 0x101,
  837. kSGCGetVideoRectSelect = 0x102,
  838. kSGCGetVideoCompressorTypeSelect = 0x103,
  839. kSGCSetVideoCompressorTypeSelect = 0x104,
  840. kSGCSetVideoCompressorSelect = 0x105,
  841. kSGCGetVideoCompressorSelect = 0x106,
  842. kSGCGetVideoDigitizerComponentSelect = 0x107,
  843. kSGCSetVideoDigitizerComponentSelect = 0x108,
  844. kSGCVideoDigitizerChangedSelect = 0x109,
  845. kSGCSetVideoBottlenecksSelect = 0x10a,
  846. kSGCGetVideoBottlenecksSelect = 0x10b,
  847. kSGCGrabFrameSelect = 0x10c,
  848. kSGCGrabFrameCompleteSelect = 0x10d,
  849. kSGCDisplayFrameSelect = 0x10e,
  850. kSGCCompressFrameSelect = 0x10f,
  851. kSGCCompressFrameCompleteSelect = 0x110,
  852. kSGCAddFrameSelect = 0x111,
  853. kSGCTransferFrameForCompressSelect = 0x112,
  854. kSGCSetCompressBufferSelect = 0x113,
  855. kSGCGetCompressBufferSelect = 0x114,
  856. kSGCGetBufferInfoSelect = 0x115,
  857.  
  858. kSGCSetSoundInputDriverSelect = 0x100,
  859. kSGCGetSoundInputDriverSelect = 0x101,
  860. kSGCSoundInputDriverChangedSelect = 0x102,
  861. kSGCSetSoundRecordChunkSizeSelect = 0x103,
  862. kSGCGetSoundRecordChunkSizeSelect = 0x104,
  863. kSGCSetSoundInputRateSelect = 0x105,
  864. kSGCGetSoundInputRateSelect = 0x106,
  865.  
  866. kSGCInitChannelSelect = 0x180,
  867. kSGCWriteSamplesSelect = 0x181,
  868. kSGCGetDataRateSelect = 0x182,
  869.  
  870. kSGWriteMovieDataSelect = 0x100,
  871. kSGAddFrameReferenceSelect = 0x101,
  872. kSGGetNextFrameReferenceSelect = 0x102,
  873. kSGGetTimeBaseSelect = 0x103
  874. };
  875.  
  876. #endif
  877.