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