source-engine/common/quicktime_win32/QuickTimeStreaming.h
FluorescentCIAAfricanAmerican 3bf9df6b27 1
2020-04-22 12:56:21 -04:00

2726 lines
82 KiB
C

/*
File: QuickTimeStreaming.h
Contains: QuickTime Interfaces.
Version: QuickTime 7.3
Copyright: (c) 2007 (c) 1990-2007 by Apple Inc., all rights reserved
Bugs?: For bug reports, consult the following page on
the World Wide Web:
http://developer.apple.com/bugreporter/
*/
#ifndef __QUICKTIMESTREAMING__
#define __QUICKTIMESTREAMING__
#ifndef __QUICKDRAW__
#include <Quickdraw.h>
#endif
#ifndef __COMPONENTS__
#include <Components.h>
#endif
#ifndef __MACERRORS__
#include <MacErrors.h>
#endif
#ifndef __MOVIES__
#include <Movies.h>
#endif
#ifndef __QUICKTIMECOMPONENTS__
#include <QuickTimeComponents.h>
#endif
#if PRAGMA_ONCE
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
#if PRAGMA_IMPORT
#pragma import on
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
#endif
/* QuickTime is not available to 64-bit clients */
#if !__LP64__
enum {
kQTSInfiniteDuration = 0x7FFFFFFF,
kQTSUnknownDuration = 0x00000000,
kQTSNormalForwardRate = 0x00010000,
kQTSStoppedRate = 0x00000000
};
struct QTSPresentationRecord {
long data[1];
};
typedef struct QTSPresentationRecord QTSPresentationRecord;
typedef QTSPresentationRecord * QTSPresentation;
struct QTSStreamRecord {
long data[1];
};
typedef struct QTSStreamRecord QTSStreamRecord;
typedef QTSStreamRecord * QTSStream;
struct QTSEditEntry {
TimeValue64 presentationDuration;
TimeValue64 streamStartTime;
Fixed streamRate;
};
typedef struct QTSEditEntry QTSEditEntry;
struct QTSEditList {
SInt32 numEdits;
QTSEditEntry edits[1];
};
typedef struct QTSEditList QTSEditList;
typedef QTSEditList * QTSEditListPtr;
typedef QTSEditListPtr * QTSEditListHandle;
#define kQTSInvalidPresentation (QTSPresentation)0L
#define kQTSAllPresentations (QTSPresentation)0L
#define kQTSInvalidStream (QTSStream)0L
#define kQTSAllStreams (QTSStream)0L
typedef CALLBACK_API( ComponentResult , QTSNotificationProcPtr )(ComponentResult inErr, OSType inNotificationType, void *inNotificationParams, void *inRefCon);
typedef STACK_UPP_TYPE(QTSNotificationProcPtr) QTSNotificationUPP;
/*-----------------------------------------
Get / Set Info
-----------------------------------------*/
enum {
kQTSGetURLLink = FOUR_CHAR_CODE('gull') /* QTSGetURLLinkRecord* */
};
/* get and set */
enum {
kQTSTargetBufferDurationInfo = FOUR_CHAR_CODE('bufr'), /* Fixed* in seconds; expected, not actual */
kQTSDurationInfo = FOUR_CHAR_CODE('dura'), /* QTSDurationAtom* */
kQTSSoundLevelMeteringEnabledInfo = FOUR_CHAR_CODE('mtrn'), /* Boolean* */
kQTSSoundLevelMeterInfo = FOUR_CHAR_CODE('levm'), /* LevelMeterInfoPtr */
kQTSSourceTrackIDInfo = FOUR_CHAR_CODE('otid'), /* UInt32* */
kQTSSourceLayerInfo = FOUR_CHAR_CODE('olyr'), /* UInt16* */
kQTSSourceLanguageInfo = FOUR_CHAR_CODE('olng'), /* UInt16* */
kQTSSourceTrackFlagsInfo = FOUR_CHAR_CODE('otfl'), /* SInt32* */
kQTSSourceDimensionsInfo = FOUR_CHAR_CODE('odim'), /* QTSDimensionParams* */
kQTSSourceVolumesInfo = FOUR_CHAR_CODE('ovol'), /* QTSVolumesParams* */
kQTSSourceMatrixInfo = FOUR_CHAR_CODE('omat'), /* MatrixRecord* */
kQTSSourceClipRectInfo = FOUR_CHAR_CODE('oclp'), /* Rect* */
kQTSSourceGraphicsModeInfo = FOUR_CHAR_CODE('ogrm'), /* QTSGraphicsModeParams* */
kQTSSourceScaleInfo = FOUR_CHAR_CODE('oscl'), /* Point* */
kQTSSourceBoundingRectInfo = FOUR_CHAR_CODE('orct'), /* Rect* */
kQTSSourceUserDataInfo = FOUR_CHAR_CODE('oudt'), /* UserData */
kQTSSourceInputMapInfo = FOUR_CHAR_CODE('oimp'), /* QTAtomContainer */
kQTSInfo_DataProc = FOUR_CHAR_CODE('datp'), /* QTSDataProcParams* */
kQTSInfo_SendDataExtras = FOUR_CHAR_CODE('dext'), /* QTSSendDataExtrasParams* */
kQTSInfo_HintTrackID = FOUR_CHAR_CODE('htid'), /* long* */
kQTSInfo_URL = FOUR_CHAR_CODE('url '), /* Handle*, cstring in handle */
kQTSInfo_Authentication = FOUR_CHAR_CODE('auup'), /* QTSAuthenticationParams */
kQTSInfo_MediaPacketizer = FOUR_CHAR_CODE('rmpk') /* ComponentInstance */
};
/* get only */
enum {
kQTSStatisticsInfo = FOUR_CHAR_CODE('stat'), /* QTSStatisticsParams* */
kQTSMinStatusDimensionsInfo = FOUR_CHAR_CODE('mstd'), /* QTSDimensionParams* */
kQTSNormalStatusDimensionsInfo = FOUR_CHAR_CODE('nstd'), /* QTSDimensionParams* */
kQTSTotalDataRateInfo = FOUR_CHAR_CODE('drtt'), /* UInt32*, add to what's there */
kQTSTotalDataRateInInfo = FOUR_CHAR_CODE('drti'), /* UInt32*, add to what's there */
kQTSTotalDataRateOutInfo = FOUR_CHAR_CODE('drto'), /* UInt32*, add to what's there */
kQTSLostPercentInfo = FOUR_CHAR_CODE('lpct'), /* QTSLostPercentParams*, add to what's there */
kQTSNumViewersInfo = FOUR_CHAR_CODE('nviw'), /* UInt32* */
kQTSMediaTypeInfo = FOUR_CHAR_CODE('mtyp'), /* OSType* */
kQTSNameInfo = FOUR_CHAR_CODE('name'), /* QTSNameParams* */
kQTSCanHandleSendDataType = FOUR_CHAR_CODE('chsd'), /* QTSCanHandleSendDataTypeParams* */
kQTSAnnotationsInfo = FOUR_CHAR_CODE('meta'), /* QTAtomContainer */
kQTSRemainingBufferTimeInfo = FOUR_CHAR_CODE('btms'), /* UInt32* remaining buffer time before playback, in microseconds */
kQTSInfo_SettingsText = FOUR_CHAR_CODE('sttx'), /* QTSSettingsTextParams* */
kQTSInfo_AverageFrameRate = FOUR_CHAR_CODE('fps ') /* UnsignedFixed* */
};
struct QTSAuthenticationParams {
SInt32 flags;
const char * userID; /* caller disposes of pointer*/
const char * password; /* caller disposes of pointer*/
};
typedef struct QTSAuthenticationParams QTSAuthenticationParams;
enum {
kQTSTargetBufferDurationTimeScale = 1000
};
struct QTSPanelFilterParams {
SInt32 version;
QTSStream inStream;
OSType inPanelType;
OSType inPanelSubType;
QTAtomSpec details;
};
typedef struct QTSPanelFilterParams QTSPanelFilterParams;
/* return true to keep this panel*/
typedef CALLBACK_API( Boolean , QTSPanelFilterProcPtr )(QTSPanelFilterParams *inParams, void *inRefCon);
typedef STACK_UPP_TYPE(QTSPanelFilterProcPtr) QTSPanelFilterUPP;
enum {
kQTSSettingsTextSummary = FOUR_CHAR_CODE('set1'),
kQTSSettingsTextDetails = FOUR_CHAR_CODE('setd')
};
struct QTSSettingsTextParams {
SInt32 flags; /* None yet defined*/
OSType inSettingsSelector; /* which kind of setting you want from enum above*/
Handle outSettingsAsText; /* QTS allocates; Caller disposes*/
QTSPanelFilterUPP inPanelFilterProc; /* To get a subset filter with this */
void * inPanelFilterProcRefCon;
};
typedef struct QTSSettingsTextParams QTSSettingsTextParams;
struct QTSCanHandleSendDataTypeParams {
SInt32 modifierTypeOrInputID;
Boolean isModifierType;
Boolean returnedCanHandleSendDataType; /* callee sets to true if it can handle it*/
};
typedef struct QTSCanHandleSendDataTypeParams QTSCanHandleSendDataTypeParams;
struct QTSNameParams {
SInt32 maxNameLength;
SInt32 requestedLanguage;
SInt32 returnedActualLanguage;
unsigned char * returnedName; /* pascal string; caller supplies*/
};
typedef struct QTSNameParams QTSNameParams;
struct QTSLostPercentParams {
UInt32 receivedPkts;
UInt32 lostPkts;
Fixed percent;
};
typedef struct QTSLostPercentParams QTSLostPercentParams;
struct QTSDimensionParams {
Fixed width;
Fixed height;
};
typedef struct QTSDimensionParams QTSDimensionParams;
struct QTSVolumesParams {
SInt16 leftVolume;
SInt16 rightVolume;
};
typedef struct QTSVolumesParams QTSVolumesParams;
struct QTSGraphicsModeParams {
SInt16 graphicsMode;
RGBColor opColor;
};
typedef struct QTSGraphicsModeParams QTSGraphicsModeParams;
struct QTSGetURLLinkRecord {
Point displayWhere;
Handle returnedURLLink;
};
typedef struct QTSGetURLLinkRecord QTSGetURLLinkRecord;
enum {
kQTSDataProcParamsVersion1 = 1
};
enum {
kQTSDataProcType_MediaSample = FOUR_CHAR_CODE('mdia'),
kQTSDataProcType_HintSample = FOUR_CHAR_CODE('hint')
};
struct QTSDataProcParams {
SInt32 version;
SInt32 flags;
QTSStream stream;
OSType procType;
QTSNotificationUPP proc;
void * procRefCon;
};
typedef struct QTSDataProcParams QTSDataProcParams;
enum {
kQTSDataProcSelector_SampleData = FOUR_CHAR_CODE('samp'),
kQTSDataProcSelector_UserData = FOUR_CHAR_CODE('user')
};
enum {
kQTSSampleDataCallbackParamsVersion1 = 1
};
struct QTSSampleDataCallbackParams {
SInt32 version;
SInt32 flags;
QTSStream stream;
OSType procType;
OSType mediaType;
TimeScale mediaTimeScale;
SampleDescriptionHandle sampleDesc;
UInt32 sampleDescSeed;
TimeValue64 sampleTime;
TimeValue64 duration; /* could be 0 */
SInt32 sampleFlags;
UInt32 dataLength;
const void * data;
};
typedef struct QTSSampleDataCallbackParams QTSSampleDataCallbackParams;
enum {
kQTSUserDataCallbackParamsVersion1 = 1
};
struct QTSUserDataCallbackParams {
SInt32 version;
SInt32 flags;
QTSStream stream;
OSType procType;
OSType userDataType;
Handle userDataHandle; /* caller must make copy if it wants to keep the data around*/
};
typedef struct QTSUserDataCallbackParams QTSUserDataCallbackParams;
enum {
kQTSSendDataExtrasParamsVersion1 = 1
};
struct QTSSendDataExtrasParams {
SInt32 version;
SInt32 flags;
OSType procType;
};
typedef struct QTSSendDataExtrasParams QTSSendDataExtrasParams;
typedef CALLBACK_API( Boolean , QTSModalFilterProcPtr )(DialogPtr inDialog, const EventRecord *inEvent, SInt16 *ioItemHit, void *inRefCon);
typedef STACK_UPP_TYPE(QTSModalFilterProcPtr) QTSModalFilterUPP;
/*-----------------------------------------
Characteristics
-----------------------------------------*/
/* characteristics in Movies.h work here too */
enum {
kQTSSupportsPerStreamControlCharacteristic = FOUR_CHAR_CODE('psct')
};
struct QTSVideoParams {
Fixed width;
Fixed height;
MatrixRecord matrix;
CGrafPtr gWorld;
GDHandle gdHandle;
RgnHandle clip;
short graphicsMode;
RGBColor opColor;
};
typedef struct QTSVideoParams QTSVideoParams;
struct QTSAudioParams {
SInt16 leftVolume;
SInt16 rightVolume;
SInt16 bassLevel;
SInt16 trebleLevel;
short frequencyBandsCount;
void * frequencyBands;
Boolean levelMeteringEnabled;
};
typedef struct QTSAudioParams QTSAudioParams;
struct QTSMediaParams {
QTSVideoParams v;
QTSAudioParams a;
};
typedef struct QTSMediaParams QTSMediaParams;
enum {
kQTSMustDraw = 1 << 3,
kQTSAtEnd = 1 << 4,
kQTSPreflightDraw = 1 << 5,
kQTSSyncDrawing = 1 << 6
};
/* media task result flags */
enum {
kQTSDidDraw = 1 << 0,
kQTSNeedsToDraw = 1 << 2,
kQTSDrawAgain = 1 << 3,
kQTSPartialDraw = 1 << 4
};
/*============================================================================
Notifications
============================================================================*/
/* ------ notification types ------ */
enum {
kQTSNullNotification = FOUR_CHAR_CODE('null'), /* NULL */
kQTSErrorNotification = FOUR_CHAR_CODE('err '), /* QTSErrorParams*, optional */
kQTSNewPresDetectedNotification = FOUR_CHAR_CODE('newp'), /* QTSNewPresDetectedParams* */
kQTSPresBeginChangingNotification = FOUR_CHAR_CODE('prcb'), /* NULL */
kQTSPresDoneChangingNotification = FOUR_CHAR_CODE('prcd'), /* NULL */
kQTSPresentationChangedNotification = FOUR_CHAR_CODE('prch'), /* NULL */
kQTSNewStreamNotification = FOUR_CHAR_CODE('stnw'), /* QTSNewStreamParams* */
kQTSStreamBeginChangingNotification = FOUR_CHAR_CODE('stcb'), /* QTSStream */
kQTSStreamDoneChangingNotification = FOUR_CHAR_CODE('stcd'), /* QTSStream */
kQTSStreamChangedNotification = FOUR_CHAR_CODE('stch'), /* QTSStreamChangedParams* */
kQTSStreamGoneNotification = FOUR_CHAR_CODE('stgn'), /* QTSStreamGoneParams* */
kQTSPreviewAckNotification = FOUR_CHAR_CODE('pvak'), /* QTSStream */
kQTSPrerollAckNotification = FOUR_CHAR_CODE('pack'), /* QTSStream */
kQTSStartAckNotification = FOUR_CHAR_CODE('sack'), /* QTSStream */
kQTSStopAckNotification = FOUR_CHAR_CODE('xack'), /* QTSStream */
kQTSStatusNotification = FOUR_CHAR_CODE('stat'), /* QTSStatusParams* */
kQTSURLNotification = FOUR_CHAR_CODE('url '), /* QTSURLParams* */
kQTSDurationNotification = FOUR_CHAR_CODE('dura'), /* QTSDurationAtom* */
kQTSNewPresentationNotification = FOUR_CHAR_CODE('nprs'), /* QTSPresentation */
kQTSPresentationGoneNotification = FOUR_CHAR_CODE('xprs'), /* QTSPresentation */
kQTSPresentationDoneNotification = FOUR_CHAR_CODE('pdon'), /* NULL */
kQTSBandwidthAlertNotification = FOUR_CHAR_CODE('bwal'), /* QTSBandwidthAlertParams* */
kQTSAnnotationsChangedNotification = FOUR_CHAR_CODE('meta') /* NULL */
};
/* flags for QTSErrorParams */
enum {
kQTSFatalErrorFlag = 0x00000001
};
struct QTSErrorParams {
const char * errorString;
SInt32 flags;
};
typedef struct QTSErrorParams QTSErrorParams;
struct QTSNewPresDetectedParams {
void * data;
};
typedef struct QTSNewPresDetectedParams QTSNewPresDetectedParams;
struct QTSNewStreamParams {
QTSStream stream;
};
typedef struct QTSNewStreamParams QTSNewStreamParams;
struct QTSStreamChangedParams {
QTSStream stream;
ComponentInstance mediaComponent; /* could be NULL */
};
typedef struct QTSStreamChangedParams QTSStreamChangedParams;
struct QTSStreamGoneParams {
QTSStream stream;
};
typedef struct QTSStreamGoneParams QTSStreamGoneParams;
struct QTSStatusParams {
UInt32 status;
const char * statusString;
UInt32 detailedStatus;
const char * detailedStatusString;
};
typedef struct QTSStatusParams QTSStatusParams;
struct QTSInfoParams {
OSType infoType;
void * infoParams;
};
typedef struct QTSInfoParams QTSInfoParams;
struct QTSURLParams {
UInt32 urlLength;
const char * url;
};
typedef struct QTSURLParams QTSURLParams;
enum {
kQTSBandwidthAlertNeedToStop = 1 << 0,
kQTSBandwidthAlertRestartAt = 1 << 1
};
struct QTSBandwidthAlertParams {
SInt32 flags;
TimeValue restartAt; /* new field in QT 4.1*/
void * reserved;
};
typedef struct QTSBandwidthAlertParams QTSBandwidthAlertParams;
/*============================================================================
Presentation
============================================================================*/
/*-----------------------------------------
Flags
-----------------------------------------*/
/* flags for NewPresentationFromData */
enum {
kQTSAutoModeFlag = 0x00000001,
kQTSDontShowStatusFlag = 0x00000008,
kQTSSendMediaFlag = 0x00010000,
kQTSReceiveMediaFlag = 0x00020000
};
struct QTSNewPresentationParams {
OSType dataType;
const void * data;
UInt32 dataLength;
QTSEditListHandle editList;
SInt32 flags;
TimeScale timeScale; /* set to 0 for default timescale */
QTSMediaParams * mediaParams;
QTSNotificationUPP notificationProc;
void * notificationRefCon;
};
typedef struct QTSNewPresentationParams QTSNewPresentationParams;
struct QTSPresParams {
UInt32 version;
QTSEditListHandle editList;
SInt32 flags;
TimeScale timeScale; /* set to 0 for default timescale */
QTSMediaParams * mediaParams;
QTSNotificationUPP notificationProc;
void * notificationRefCon;
};
typedef struct QTSPresParams QTSPresParams;
enum {
kQTSPresParamsVersion1 = 1
};
struct QTSPresIdleParams {
QTSStream stream;
TimeValue64 movieTimeToDisplay;
SInt32 flagsIn;
SInt32 flagsOut;
};
typedef struct QTSPresIdleParams QTSPresIdleParams;
enum {
kQTSExportFlag_ShowDialog = 0x00000001
};
enum {
kQTSExportParamsVersion1 = 1
};
struct QTSExportParams {
SInt32 version;
OSType exportType;
void * exportExtraData;
OSType destinationContainerType;
void * destinationContainerData;
void * destinationContainerExtras;
SInt32 flagsIn;
SInt32 flagsOut;
QTSModalFilterUPP filterProc;
void * filterProcRefCon;
Component exportComponent; /* NULL unless you want to override */
};
typedef struct QTSExportParams QTSExportParams;
/*-----------------------------------------
Toolbox Init/Close
-----------------------------------------*/
/* all "apps" must call this */
/*
* InitializeQTS()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
InitializeQTS(void);
/*
* TerminateQTS()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
TerminateQTS(void);
/*-----------------------------------------
Presentation Functions
-----------------------------------------*/
/*
* QTSNewPresentation()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSNewPresentation(
const QTSNewPresentationParams * inParams,
QTSPresentation * outPresentation);
/*
* QTSNewPresentationFromData()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 5.0 and later
*/
EXTERN_API_C( OSErr )
QTSNewPresentationFromData(
OSType inDataType,
const void * inData,
const SInt64 * inDataLength,
const QTSPresParams * inPresParams,
QTSPresentation * outPresentation);
/*
* QTSNewPresentationFromFile()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 5.0 and later
*/
EXTERN_API_C( OSErr )
QTSNewPresentationFromFile(
const FSSpec * inFileSpec,
const QTSPresParams * inPresParams,
QTSPresentation * outPresentation);
/*
* QTSNewPresentationFromDataRef()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 5.0 and later
*/
EXTERN_API_C( OSErr )
QTSNewPresentationFromDataRef(
Handle inDataRef,
OSType inDataRefType,
const QTSPresParams * inPresParams,
QTSPresentation * outPresentation);
/*
* QTSDisposePresentation()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSDisposePresentation(
QTSPresentation inPresentation,
SInt32 inFlags);
/*
* QTSPresExport()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 5.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresExport(
QTSPresentation inPresentation,
QTSStream inStream,
QTSExportParams * inExportParams);
/*
* QTSPresIdle()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( void )
QTSPresIdle(
QTSPresentation inPresentation,
QTSPresIdleParams * ioParams);
/*
* QTSPresInvalidateRegion()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresInvalidateRegion(
QTSPresentation inPresentation,
RgnHandle inRegion);
/*-----------------------------------------
Presentation Configuration
-----------------------------------------*/
/*
* QTSPresSetFlags()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetFlags(
QTSPresentation inPresentation,
SInt32 inFlags,
SInt32 inFlagsMask);
/*
* QTSPresGetFlags()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetFlags(
QTSPresentation inPresentation,
SInt32 * outFlags);
/*
* QTSPresGetTimeBase()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetTimeBase(
QTSPresentation inPresentation,
TimeBase * outTimeBase);
/*
* QTSPresGetTimeScale()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetTimeScale(
QTSPresentation inPresentation,
TimeScale * outTimeScale);
/*
* QTSPresSetInfo()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetInfo(
QTSPresentation inPresentation,
QTSStream inStream,
OSType inSelector,
void * ioParam);
/*
* QTSPresGetInfo()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetInfo(
QTSPresentation inPresentation,
QTSStream inStream,
OSType inSelector,
void * ioParam);
/*
* QTSPresHasCharacteristic()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresHasCharacteristic(
QTSPresentation inPresentation,
QTSStream inStream,
OSType inCharacteristic,
Boolean * outHasIt);
/*
* QTSPresSetNotificationProc()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetNotificationProc(
QTSPresentation inPresentation,
QTSNotificationUPP inNotificationProc,
void * inRefCon);
/*
* QTSPresGetNotificationProc()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetNotificationProc(
QTSPresentation inPresentation,
QTSNotificationUPP * outNotificationProc,
void ** outRefCon);
/*-----------------------------------------
Presentation Control
-----------------------------------------*/
/*
* QTSPresPreview()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresPreview(
QTSPresentation inPresentation,
QTSStream inStream,
const TimeValue64 * inTimeValue,
Fixed inRate,
SInt32 inFlags);
/*
* QTSPresPreroll()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresPreroll(
QTSPresentation inPresentation,
QTSStream inStream,
UInt32 inTimeValue,
Fixed inRate,
SInt32 inFlags);
/*
* QTSPresPreroll64()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPresPreroll64(
QTSPresentation inPresentation,
QTSStream inStream,
const TimeValue64 * inPrerollTime,
Fixed inRate,
SInt32 inFlags);
/*
* QTSPresStart()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresStart(
QTSPresentation inPresentation,
QTSStream inStream,
SInt32 inFlags);
/*
* QTSPresSkipTo()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSkipTo(
QTSPresentation inPresentation,
UInt32 inTimeValue);
/*
* QTSPresSkipTo64()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPresSkipTo64(
QTSPresentation inPresentation,
const TimeValue64 * inTimeValue);
/*
* QTSPresStop()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresStop(
QTSPresentation inPresentation,
QTSStream inStream,
SInt32 inFlags);
/*============================================================================
Streams
============================================================================*/
/*-----------------------------------------
Stream Functions
-----------------------------------------*/
/*
* QTSPresNewStream()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresNewStream(
QTSPresentation inPresentation,
OSType inDataType,
const void * inData,
UInt32 inDataLength,
SInt32 inFlags,
QTSStream * outStream);
/*
* QTSDisposeStream()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSDisposeStream(
QTSStream inStream,
SInt32 inFlags);
/*
* QTSPresGetNumStreams()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( UInt32 )
QTSPresGetNumStreams(QTSPresentation inPresentation);
/*
* QTSPresGetIndStream()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( QTSStream )
QTSPresGetIndStream(
QTSPresentation inPresentation,
UInt32 inIndex);
/*
* QTSGetStreamPresentation()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( QTSPresentation )
QTSGetStreamPresentation(QTSStream inStream);
/*
* QTSPresSetPreferredRate()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetPreferredRate(
QTSPresentation inPresentation,
Fixed inRate,
SInt32 inFlags);
/*
* QTSPresGetPreferredRate()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetPreferredRate(
QTSPresentation inPresentation,
Fixed * outRate);
/*
* QTSPresSetEnable()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetEnable(
QTSPresentation inPresentation,
QTSStream inStream,
Boolean inEnableMode);
/*
* QTSPresGetEnable()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetEnable(
QTSPresentation inPresentation,
QTSStream inStream,
Boolean * outEnableMode);
/*
* QTSPresSetPresenting()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetPresenting(
QTSPresentation inPresentation,
QTSStream inStream,
Boolean inPresentingMode);
/*
* QTSPresGetPresenting()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetPresenting(
QTSPresentation inPresentation,
QTSStream inStream,
Boolean * outPresentingMode);
/*
* QTSPresSetActiveSegment()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetActiveSegment(
QTSPresentation inPresentation,
QTSStream inStream,
const TimeValue64 * inStartTime,
const TimeValue64 * inDuration);
/*
* QTSPresGetActiveSegment()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetActiveSegment(
QTSPresentation inPresentation,
QTSStream inStream,
TimeValue64 * outStartTime,
TimeValue64 * outDuration);
/*
* QTSPresSetPlayHints()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetPlayHints(
QTSPresentation inPresentation,
QTSStream inStream,
SInt32 inFlags,
SInt32 inFlagsMask);
/*
* QTSPresGetPlayHints()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetPlayHints(
QTSPresentation inPresentation,
QTSStream inStream,
SInt32 * outFlags);
/*-----------------------------------------
Stream Spatial Functions
-----------------------------------------*/
/*
* QTSPresSetGWorld()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetGWorld(
QTSPresentation inPresentation,
QTSStream inStream,
CGrafPtr inGWorld,
GDHandle inGDHandle);
/*
* QTSPresGetGWorld()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetGWorld(
QTSPresentation inPresentation,
QTSStream inStream,
CGrafPtr * outGWorld,
GDHandle * outGDHandle);
/*
* QTSPresSetClip()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetClip(
QTSPresentation inPresentation,
QTSStream inStream,
RgnHandle inClip);
/*
* QTSPresGetClip()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetClip(
QTSPresentation inPresentation,
QTSStream inStream,
RgnHandle * outClip);
/*
* QTSPresSetMatrix()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetMatrix(
QTSPresentation inPresentation,
QTSStream inStream,
const MatrixRecord * inMatrix);
/*
* QTSPresGetMatrix()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetMatrix(
QTSPresentation inPresentation,
QTSStream inStream,
MatrixRecord * outMatrix);
/*
* QTSPresSetDimensions()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetDimensions(
QTSPresentation inPresentation,
QTSStream inStream,
Fixed inWidth,
Fixed inHeight);
/*
* QTSPresGetDimensions()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetDimensions(
QTSPresentation inPresentation,
QTSStream inStream,
Fixed * outWidth,
Fixed * outHeight);
/*
* QTSPresSetGraphicsMode()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetGraphicsMode(
QTSPresentation inPresentation,
QTSStream inStream,
short inMode,
const RGBColor * inOpColor);
/*
* QTSPresGetGraphicsMode()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetGraphicsMode(
QTSPresentation inPresentation,
QTSStream inStream,
short * outMode,
RGBColor * outOpColor);
/*
* QTSPresGetPicture()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetPicture(
QTSPresentation inPresentation,
QTSStream inStream,
PicHandle * outPicture);
/*-----------------------------------------
Stream Sound Functions
-----------------------------------------*/
/*
* QTSPresSetVolumes()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetVolumes(
QTSPresentation inPresentation,
QTSStream inStream,
short inLeftVolume,
short inRightVolume);
/*
* QTSPresGetVolumes()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetVolumes(
QTSPresentation inPresentation,
QTSStream inStream,
short * outLeftVolume,
short * outRightVolume);
/*-----------------------------------------
Sourcing
-----------------------------------------*/
/*
* QTSPresGetSettingsAsText()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0.1 and later
* CarbonLib: in CarbonLib 1.6 and later
* Mac OS X: in version 10.1 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetSettingsAsText(
QTSPresentation inPresentation,
QTSStream inStream,
SInt32 inFlags,
OSType inSettingsType,
Handle * outText,
QTSPanelFilterUPP inPanelFilterProc,
void * inPanelFilterProcRefCon);
/*
* QTSPresSettingsDialog()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSettingsDialog(
QTSPresentation inPresentation,
QTSStream inStream,
SInt32 inFlags,
QTSModalFilterUPP inFilterProc,
void * inFilterProcRefCon);
/*
* QTSPresSettingsDialogWithFilters()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0.1 and later
* CarbonLib: in CarbonLib 1.6 and later
* Mac OS X: in version 10.1 and later
*/
EXTERN_API_C( OSErr )
QTSPresSettingsDialogWithFilters(
QTSPresentation inPresentation,
QTSStream inStream,
SInt32 inFlags,
QTSModalFilterUPP inFilterProc,
void * inFilterProcRefCon,
QTSPanelFilterUPP inPanelFilterProc,
void * inPanelFilterProcRefCon);
/*
* QTSPresSetSettings()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresSetSettings(
QTSPresentation inPresentation,
QTSStream inStream,
QTAtomSpecPtr inSettings,
SInt32 inFlags);
/*
* QTSPresGetSettings()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetSettings(
QTSPresentation inPresentation,
QTSStream inStream,
QTAtomContainer * outSettings,
SInt32 inFlags);
/*
* QTSPresAddSourcer()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresAddSourcer(
QTSPresentation inPresentation,
QTSStream inStream,
ComponentInstance inSourcer,
SInt32 inFlags);
/*
* QTSPresRemoveSourcer()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresRemoveSourcer(
QTSPresentation inPresentation,
QTSStream inStream,
ComponentInstance inSourcer,
SInt32 inFlags);
/*
* QTSPresGetNumSourcers()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( UInt32 )
QTSPresGetNumSourcers(
QTSPresentation inPresentation,
QTSStream inStream);
/*
* QTSPresGetIndSourcer()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( OSErr )
QTSPresGetIndSourcer(
QTSPresentation inPresentation,
QTSStream inStream,
UInt32 inIndex,
ComponentInstance * outSourcer);
/*============================================================================
Misc
============================================================================*/
/* flags for Get/SetNetworkAppName */
enum {
kQTSNetworkAppNameIsFullNameFlag = 0x00000001
};
/*
* QTSSetNetworkAppName()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSSetNetworkAppName(
const char * inAppName,
SInt32 inFlags);
/*
* QTSGetNetworkAppName()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSGetNetworkAppName(
SInt32 inFlags,
char ** outCStringPtr);
/*-----------------------------------------
Statistics Utilities
-----------------------------------------*/
struct QTSStatHelperRecord {
long data[1];
};
typedef struct QTSStatHelperRecord QTSStatHelperRecord;
typedef QTSStatHelperRecord * QTSStatHelper;
enum {
kQTSInvalidStatHelper = 0L
};
/* flags for QTSStatHelperNextParams */
enum {
kQTSStatHelperReturnPascalStringsFlag = 0x00000001
};
struct QTSStatHelperNextParams {
SInt32 flags;
OSType returnedStatisticsType;
QTSStream returnedStream;
UInt32 maxStatNameLength;
char * returnedStatName; /* NULL if you don't want it*/
UInt32 maxStatStringLength;
char * returnedStatString; /* NULL if you don't want it*/
UInt32 maxStatUnitLength;
char * returnedStatUnit; /* NULL if you don't want it*/
};
typedef struct QTSStatHelperNextParams QTSStatHelperNextParams;
struct QTSStatisticsParams {
OSType statisticsType;
QTAtomContainer container;
QTAtom parentAtom;
SInt32 flags;
};
typedef struct QTSStatisticsParams QTSStatisticsParams;
/* general statistics types */
enum {
kQTSAllStatisticsType = FOUR_CHAR_CODE('all '),
kQTSShortStatisticsType = FOUR_CHAR_CODE('shrt'),
kQTSSummaryStatisticsType = FOUR_CHAR_CODE('summ')
};
/* statistics flags */
enum {
kQTSGetNameStatisticsFlag = 0x00000001,
kQTSDontGetDataStatisticsFlag = 0x00000002,
kQTSUpdateAtomsStatisticsFlag = 0x00000004,
kQTSGetUnitsStatisticsFlag = 0x00000008,
kQTSUpdateAllIfNecessaryStatisticsFlag = 0x00010000
};
/* statistics atom types */
enum {
kQTSStatisticsStreamAtomType = FOUR_CHAR_CODE('strm'),
kQTSStatisticsNameAtomType = FOUR_CHAR_CODE('name'), /* chars only, no length or terminator */
kQTSStatisticsDataFormatAtomType = FOUR_CHAR_CODE('frmt'), /* OSType */
kQTSStatisticsDataAtomType = FOUR_CHAR_CODE('data'),
kQTSStatisticsUnitsAtomType = FOUR_CHAR_CODE('unit'), /* OSType */
kQTSStatisticsUnitsNameAtomType = FOUR_CHAR_CODE('unin') /* chars only, no length or terminator */
};
/* statistics data formats */
enum {
kQTSStatisticsSInt32DataFormat = FOUR_CHAR_CODE('si32'),
kQTSStatisticsUInt32DataFormat = FOUR_CHAR_CODE('ui32'),
kQTSStatisticsSInt16DataFormat = FOUR_CHAR_CODE('si16'),
kQTSStatisticsUInt16DataFormat = FOUR_CHAR_CODE('ui16'),
kQTSStatisticsFixedDataFormat = FOUR_CHAR_CODE('fixd'),
kQTSStatisticsUnsignedFixedDataFormat = FOUR_CHAR_CODE('ufix'),
kQTSStatisticsStringDataFormat = FOUR_CHAR_CODE('strg'),
kQTSStatisticsOSTypeDataFormat = FOUR_CHAR_CODE('ostp'),
kQTSStatisticsRectDataFormat = FOUR_CHAR_CODE('rect'),
kQTSStatisticsPointDataFormat = FOUR_CHAR_CODE('pont')
};
/* statistics units types */
enum {
kQTSStatisticsNoUnitsType = 0,
kQTSStatisticsPercentUnitsType = FOUR_CHAR_CODE('pcnt'),
kQTSStatisticsBitsPerSecUnitsType = FOUR_CHAR_CODE('bps '),
kQTSStatisticsFramesPerSecUnitsType = FOUR_CHAR_CODE('fps ')
};
/* specific statistics types */
enum {
kQTSTotalDataRateStat = FOUR_CHAR_CODE('drtt'),
kQTSTotalDataRateInStat = FOUR_CHAR_CODE('drti'),
kQTSTotalDataRateOutStat = FOUR_CHAR_CODE('drto'),
kQTSNetworkIDStringStat = FOUR_CHAR_CODE('nids')
};
/*
* QTSNewStatHelper()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSNewStatHelper(
QTSPresentation inPresentation,
QTSStream inStream,
OSType inStatType,
SInt32 inFlags,
QTSStatHelper * outStatHelper);
/*
* QTSDisposeStatHelper()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSDisposeStatHelper(QTSStatHelper inStatHelper);
/*
* QTSStatHelperGetStats()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSStatHelperGetStats(QTSStatHelper inStatHelper);
/*
* QTSStatHelperResetIter()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSStatHelperResetIter(QTSStatHelper inStatHelper);
/*
* QTSStatHelperNext()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( Boolean )
QTSStatHelperNext(
QTSStatHelper inStatHelper,
QTSStatHelperNextParams * ioParams);
/*
* QTSStatHelperGetNumStats()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( UInt32 )
QTSStatHelperGetNumStats(QTSStatHelper inStatHelper);
/* used by components to put statistics into the atom container */
/*
* QTSGetOrMakeStatAtomForStream()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSGetOrMakeStatAtomForStream(
QTAtomContainer inContainer,
QTSStream inStream,
QTAtom * outParentAtom);
/*
* QTSInsertStatistic()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSInsertStatistic(
QTAtomContainer inContainer,
QTAtom inParentAtom,
OSType inStatType,
void * inStatData,
UInt32 inStatDataLength,
OSType inStatDataFormat,
SInt32 inFlags);
/*
* QTSInsertStatisticName()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSInsertStatisticName(
QTAtomContainer inContainer,
QTAtom inParentAtom,
OSType inStatType,
const char * inStatName,
UInt32 inStatNameLength);
/*
* QTSInsertStatisticUnits()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( OSErr )
QTSInsertStatisticUnits(
QTAtomContainer inContainer,
QTAtom inParentAtom,
OSType inStatType,
OSType inUnitsType,
const char * inUnitsName,
UInt32 inUnitsNameLength);
/*============================================================================
Data Formats
============================================================================*/
/*-----------------------------------------
Data Types
-----------------------------------------*/
/* universal data types */
enum {
kQTSNullDataType = FOUR_CHAR_CODE('NULL'),
kQTSUnknownDataType = FOUR_CHAR_CODE('huh?'),
kQTSAtomContainerDataType = FOUR_CHAR_CODE('qtac'), /* QTAtomContainer */
kQTSAtomDataType = FOUR_CHAR_CODE('qtat'), /* QTSAtomContainerDataStruct* */
kQTSAliasDataType = FOUR_CHAR_CODE('alis'),
kQTSFileDataType = FOUR_CHAR_CODE('fspc'), /* FSSpec* */
kQTSFileSpecDataType = FOUR_CHAR_CODE('fspc'), /* FSSpec* */
kQTSHandleDataType = FOUR_CHAR_CODE('hndl'), /* Handle* */
kQTSDataRefDataType = FOUR_CHAR_CODE('dref') /* DataReferencePtr */
};
/* these data types are specific to presentations */
enum {
kQTSRTSPDataType = FOUR_CHAR_CODE('rtsp'),
kQTSSDPDataType = FOUR_CHAR_CODE('sdp ')
};
/*-----------------------------------------
Atom IDs
-----------------------------------------*/
enum {
kQTSAtomType_Presentation = FOUR_CHAR_CODE('pres'),
kQTSAtomType_PresentationHeader = FOUR_CHAR_CODE('phdr'), /* QTSPresentationHeaderAtom */
kQTSAtomType_MediaStream = FOUR_CHAR_CODE('mstr'),
kQTSAtomType_MediaStreamHeader = FOUR_CHAR_CODE('mshd'), /* QTSMediaStreamHeaderAtom */
kQTSAtomType_MediaDescriptionText = FOUR_CHAR_CODE('mdes'), /* chars, no length */
kQTSAtomType_ClipRect = FOUR_CHAR_CODE('clip'), /* QTSClipRectAtom */
kQTSAtomType_Duration = FOUR_CHAR_CODE('dura'), /* QTSDurationAtom */
kQTSAtomType_BufferTime = FOUR_CHAR_CODE('bufr') /* QTSBufferTimeAtom */
};
struct QTSAtomContainerDataStruct {
QTAtomContainer container;
QTAtom parentAtom;
};
typedef struct QTSAtomContainerDataStruct QTSAtomContainerDataStruct;
/* flags for QTSPresentationHeaderAtom */
enum {
kQTSPresHeaderTypeIsData = 0x00000100,
kQTSPresHeaderDataIsHandle = 0x00000200
};
struct QTSPresentationHeaderAtom {
SInt32 versionAndFlags;
OSType conductorOrDataType;
OSType dataAtomType; /* where the data really is*/
};
typedef struct QTSPresentationHeaderAtom QTSPresentationHeaderAtom;
struct QTSMediaStreamHeaderAtom {
SInt32 versionAndFlags;
OSType mediaTransportType;
OSType mediaTransportDataAID; /* where the data really is*/
};
typedef struct QTSMediaStreamHeaderAtom QTSMediaStreamHeaderAtom;
struct QTSBufferTimeAtom {
SInt32 versionAndFlags;
Fixed bufferTime;
};
typedef struct QTSBufferTimeAtom QTSBufferTimeAtom;
struct QTSDurationAtom {
SInt32 versionAndFlags;
TimeScale timeScale;
TimeValue64 duration;
};
typedef struct QTSDurationAtom QTSDurationAtom;
struct QTSClipRectAtom {
SInt32 versionAndFlags;
Rect clipRect;
};
typedef struct QTSClipRectAtom QTSClipRectAtom;
enum {
kQTSEmptyEditStreamStartTime = -1
};
typedef UInt32 QTSStatus;
enum {
kQTSNullStatus = 0,
kQTSUninitializedStatus = 1,
kQTSConnectingStatus = 2,
kQTSOpeningConnectionDetailedStatus = 3,
kQTSMadeConnectionDetailedStatus = 4,
kQTSNegotiatingStatus = 5,
kQTSGettingDescriptionDetailedStatus = 6,
kQTSGotDescriptionDetailedStatus = 7,
kQTSSentSetupCmdDetailedStatus = 8,
kQTSReceivedSetupResponseDetailedStatus = 9,
kQTSSentPlayCmdDetailedStatus = 10,
kQTSReceivedPlayResponseDetailedStatus = 11,
kQTSBufferingStatus = 12,
kQTSPlayingStatus = 13,
kQTSPausedStatus = 14,
kQTSAutoConfiguringStatus = 15,
kQTSDownloadingStatus = 16,
kQTSBufferingWithTimeStatus = 17,
kQTSWaitingDisconnectStatus = 100
};
/*-----------------------------------------
QuickTime Preferences Types
-----------------------------------------*/
enum {
kQTSConnectionPrefsType = FOUR_CHAR_CODE('stcm'), /* root atom that all other atoms are contained in*/
/* kQTSNotUsedForProxyPrefsType = 'nopr', // comma-delimited list of URLs that are never used for proxies*/
kQTSConnectionMethodPrefsType = FOUR_CHAR_CODE('mthd'), /* connection method (OSType that matches one of the following three)*/
kQTSDirectConnectPrefsType = FOUR_CHAR_CODE('drct'), /* used if direct connect (QTSDirectConnectPrefsRecord)*/
/* kQTSRTSPProxyPrefsType = 'rtsp', // used if RTSP Proxy (QTSProxyPrefsRecord)*/
kQTSSOCKSPrefsType = FOUR_CHAR_CODE('sock') /* used if SOCKS Proxy (QTSProxyPrefsRecord)*/
};
enum {
kQTSDirectConnectHTTPProtocol = FOUR_CHAR_CODE('http'),
kQTSDirectConnectRTSPProtocol = FOUR_CHAR_CODE('rtsp')
};
struct QTSDirectConnectPrefsRecord {
UInt32 tcpPortID;
OSType protocol;
};
typedef struct QTSDirectConnectPrefsRecord QTSDirectConnectPrefsRecord;
struct QTSProxyPrefsRecord {
Str255 serverNameStr;
UInt32 portID;
};
typedef struct QTSProxyPrefsRecord QTSProxyPrefsRecord;
#define kQTSTransAndProxyPrefsVersNum 2 /* prefs atom format version */
enum {
kConnectionActive = (1L << 0),
kConnectionUseSystemPref = (1L << 1)
};
struct QTSTransportPref {
OSType protocol; /* udp, http, tcp, etc*/
SInt32 portID; /* port to use for this connection type*/
UInt32 flags; /* connection flags*/
UInt32 seed; /* seed value last time this setting was read from system prefs*/
};
typedef struct QTSTransportPref QTSTransportPref;
enum {
kProxyActive = (1L << 0),
kProxyUseSystemPref = (1L << 1)
};
struct QTSProxyPref {
UInt32 flags; /* proxy flags*/
SInt32 portID; /* port to use for this connection type*/
UInt32 seed; /* seed value last time this setting was read from system prefs*/
Str255 serverNameStr; /* proxy server url*/
};
typedef struct QTSProxyPref QTSProxyPref;
enum {
kNoProxyUseSystemPref = (1L << 0)
};
struct QTSNoProxyPref {
UInt32 flags; /* no-proxy flags*/
UInt32 seed; /* seed value last time this setting was read from system prefs*/
char urlList[1]; /* NULL terminated, comma delimited list of urls*/
};
typedef struct QTSNoProxyPref QTSNoProxyPref;
enum {
kQTSInstantOnFlag_Enable = (1L << 0), /* instant on is enabled (read/write)*/
kQTSInstantOnFlag_Permitted = (1L << 1) /* instant on is possible (read only)*/
};
struct QTSInstantOnPref {
SInt32 flags; /* flags*/
SInt32 factor; /* 0-100; default is 50*/
};
typedef struct QTSInstantOnPref QTSInstantOnPref;
enum {
kQTSTransAndProxyAtomType = FOUR_CHAR_CODE('strp'), /* transport/proxy prefs root atom*/
kQTSConnectionPrefsVersion = FOUR_CHAR_CODE('vers'), /* prefs format version*/
kQTSTransportPrefsAtomType = FOUR_CHAR_CODE('trns'), /* tranport prefs root atom*/
kQTSConnectionAtomType = FOUR_CHAR_CODE('conn'), /* connection prefs atom type, one for each transport type*/
kQTSUDPTransportType = FOUR_CHAR_CODE('udp '), /* udp transport prefs*/
kQTSHTTPTransportType = FOUR_CHAR_CODE('http'), /* http transport prefs*/
kQTSTCPTransportType = FOUR_CHAR_CODE('tcp '), /* tcp transport prefs */
kQTSProxyPrefsAtomType = FOUR_CHAR_CODE('prxy'), /* proxy prefs root atom*/
kQTSHTTPProxyPrefsType = FOUR_CHAR_CODE('http'), /* http proxy settings*/
kQTSRTSPProxyPrefsType = FOUR_CHAR_CODE('rtsp'), /* rtsp proxy settings*/
kQTSSOCKSProxyPrefsType = FOUR_CHAR_CODE('sock'), /* socks proxy settings*/
kQTSProxyUserInfoPrefsType = FOUR_CHAR_CODE('user'), /* proxy username/password root atom*/
kQTSDontProxyPrefsAtomType = FOUR_CHAR_CODE('nopr'), /* no-proxy prefs root atom*/
kQTSDontProxyDataType = FOUR_CHAR_CODE('data'), /* no proxy settings*/
kQTSInstantOnPrefsAtomType = FOUR_CHAR_CODE('inon') /* instant on prefs*/
};
/*
* QTSPrefsAddProxySetting()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsAddProxySetting(
OSType proxyType,
SInt32 portID,
UInt32 flags,
UInt32 seed,
Str255 srvrURL);
/*
* QTSPrefsFindProxyByType()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsFindProxyByType(
OSType proxyType,
UInt32 flags,
UInt32 flagsMask,
QTSProxyPref ** proxyHndl,
SInt16 * count);
/*
* QTSPrefsAddConnectionSetting()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsAddConnectionSetting(
OSType protocol,
SInt32 portID,
UInt32 flags,
UInt32 seed);
/*
* QTSPrefsFindConnectionByType()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsFindConnectionByType(
OSType protocol,
UInt32 flags,
UInt32 flagsMask,
QTSTransportPref ** connectionHndl,
SInt16 * count);
/*
* QTSPrefsGetActiveConnection()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsGetActiveConnection(
OSType protocol,
QTSTransportPref * connectInfo);
/*
* QTSPrefsGetNoProxyURLs()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsGetNoProxyURLs(QTSNoProxyPref ** noProxyHndl);
/*
* QTSPrefsSetNoProxyURLs()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.1 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.1 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsSetNoProxyURLs(
char * urls,
UInt32 flags,
UInt32 seed);
/*
* QTSPrefsAddProxyUserInfo()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0.1 and later
* CarbonLib: in CarbonLib 1.6 and later
* Mac OS X: in version 10.1 and later
* Windows: in QTSClient.lib 5.0.1 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsAddProxyUserInfo(
OSType proxyType,
SInt32 flags,
SInt32 flagsMask,
StringPtr username,
StringPtr password);
/*
* QTSPrefsFindProxyUserInfoByType()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0.1 and later
* CarbonLib: in CarbonLib 1.6 and later
* Mac OS X: in version 10.1 and later
* Windows: in QTSClient.lib 5.0.1 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsFindProxyUserInfoByType(
OSType proxyType,
SInt32 flags,
SInt32 flagsMask,
StringPtr username,
StringPtr password);
/*
* QTSPrefsGetInstantOnSettings()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 6.0 and later
* CarbonLib: in CarbonLib 1.6 and later
* Mac OS X: in version 10.2 and later
* Windows: in QTSClient.lib 6.0 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsGetInstantOnSettings(
QTSInstantOnPref * outPref,
SInt32 inFlags);
/*
* QTSPrefsSetInstantOnSettings()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 6.0 and later
* CarbonLib: in CarbonLib 1.6 and later
* Mac OS X: in version 10.2 and later
* Windows: in QTSClient.lib 6.0 and later
*/
EXTERN_API_C( OSErr )
QTSPrefsSetInstantOnSettings(
QTSInstantOnPref * inPref,
SInt32 inFlags);
/*============================================================================
Memory Management Services
============================================================================*/
/*
These routines allocate normal pointers and handles,
but do the correct checking, etc.
Dispose using the normal DisposePtr and DisposeHandle
Call these routines for one time memory allocations.
You do not need to set any hints to use these calls.
*/
/*
* QTSNewPtr()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( Ptr )
QTSNewPtr(
UInt32 inByteCount,
SInt32 inFlags,
SInt32 * outFlags);
/*
* QTSNewHandle()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( Handle )
QTSNewHandle(
UInt32 inByteCount,
SInt32 inFlags,
SInt32 * outFlags);
#define QTSNewPtrClear(_s) QTSNewPtr((_s), kQTSMemAllocClearMem, NULL)
#define QTSNewHandleClear(_s) QTSNewHandle((_s), kQTSMemAllocClearMem, NULL)
/* flags in*/
enum {
kQTSMemAllocClearMem = 0x00000001,
kQTSMemAllocDontUseTempMem = 0x00000002,
kQTSMemAllocTryTempMemFirst = 0x00000004,
kQTSMemAllocDontUseSystemMem = 0x00000008,
kQTSMemAllocTrySystemMemFirst = 0x00000010,
kQTSMemAllocHoldMemory = 0x00001000,
kQTSMemAllocIsInterruptTime = 0x01010000 /* currently not supported for alloc*/
};
/* flags out*/
enum {
kQTSMemAllocAllocatedInTempMem = 0x00000001,
kQTSMemAllocAllocatedInSystemMem = 0x00000002
};
typedef struct OpaqueQTSMemPtr* QTSMemPtr;
/*
These routines are for buffers that will be recirculated
you must use QTReleaseMemPtr instead of DisposePtr
QTSReleaseMemPtr can be used at interrupt time
but QTSAllocMemPtr currently cannot
*/
/*
* QTSAllocMemPtr()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( QTSMemPtr )
QTSAllocMemPtr(
UInt32 inByteCount,
SInt32 inFlags);
/*
* QTSReleaseMemPtr()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( void )
QTSReleaseMemPtr(
QTSMemPtr inMemPtr,
SInt32 inFlags);
/*============================================================================
Buffer Management Services
============================================================================*/
enum {
kQTSStreamBufferVersion1 = 1
};
struct QTSStreamBuffer {
struct QTSStreamBuffer * reserved1;
struct QTSStreamBuffer * reserved2;
struct QTSStreamBuffer * next; /* next message block in a message */
unsigned char * rptr; /* first byte with real data in the DataBuffer */
unsigned char * wptr; /* last+1 byte with real data in the DataBuffer */
SInt32 version;
UInt32 metadata[4]; /* usage defined by message sender */
SInt32 flags; /* reserved */
long reserved3;
long reserved4;
long reserved5;
UInt32 moreMeta[8];
};
typedef struct QTSStreamBuffer QTSStreamBuffer;
/* flags for QTSDuplicateMessage*/
enum {
kQTSDuplicateBufferFlag_CopyData = 0x00000001,
kQTSDuplicateBufferFlag_FlattenMessage = 0x00000002
};
/*
* QTSNewStreamBuffer()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 5.0 and later
*/
EXTERN_API_C( OSErr )
QTSNewStreamBuffer(
UInt32 inDataSize,
SInt32 inFlags,
QTSStreamBuffer ** outStreamBuffer);
/*
* QTSFreeMessage()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( void )
QTSFreeMessage(QTSStreamBuffer * inMessage);
/*
kQTSDuplicateBufferFlag_CopyData - forces a copy of the data itself
kQTSCopyBufferFlag_FlattenMessage - copies the data if it needs to be flattened
QTSDuplicateMessage never frees the old message
*/
/*
* QTSDuplicateMessage()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 5.0 and later
*/
EXTERN_API_C( OSErr )
QTSDuplicateMessage(
QTSStreamBuffer * inMessage,
SInt32 inFlags,
QTSStreamBuffer ** outDuplicatedMessage);
/*
* QTSMessageLength()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( UInt32 )
QTSMessageLength(QTSStreamBuffer * inMessage);
/*
* QTSStreamBufferDataInfo()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0 and later
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 5.0 and later
*/
EXTERN_API_C( void )
QTSStreamBufferDataInfo(
QTSStreamBuffer * inStreamBuffer,
unsigned char ** outDataStart,
UInt32 * outDataMaxLength);
/* ---- old calls (don't use these)*/
/*
* QTSAllocBuffer()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( QTSStreamBuffer * )
QTSAllocBuffer(SInt32 inSize);
/*
* QTSDupMessage()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( QTSStreamBuffer * )
QTSDupMessage(QTSStreamBuffer * inMessage);
/*
* QTSCopyMessage()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( QTSStreamBuffer * )
QTSCopyMessage(QTSStreamBuffer * inMessage);
/*
* QTSFlattenMessage()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( QTSStreamBuffer * )
QTSFlattenMessage(QTSStreamBuffer * inMessage);
/*============================================================================
Misc
============================================================================*/
/*
* QTSGetErrorString()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API_C( Boolean )
QTSGetErrorString(
SInt32 inErrorCode,
UInt32 inMaxErrorStringLength,
char * outErrorString,
SInt32 inFlags);
/*
* QTSInitializeMediaParams()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 5.0.1 and later
* CarbonLib: in CarbonLib 1.6 and later
* Mac OS X: in version 10.1 and later
* Windows: in QTSClient.lib 5.0.1 and later
*/
EXTERN_API_C( OSErr )
QTSInitializeMediaParams(QTSMediaParams * inMediaParams);
/* UPP call backs */
/*
* NewQTSNotificationUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( QTSNotificationUPP )
NewQTSNotificationUPP(QTSNotificationProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppQTSNotificationProcInfo = 0x00003FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
#ifdef __cplusplus
inline DEFINE_API_C(QTSNotificationUPP) NewQTSNotificationUPP(QTSNotificationProcPtr userRoutine) { return (QTSNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSNotificationProcInfo, GetCurrentArchitecture()); }
#else
#define NewQTSNotificationUPP(userRoutine) (QTSNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSNotificationProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* NewQTSPanelFilterUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.6 and later
* Mac OS X: in version 10.1 and later
*/
EXTERN_API_C( QTSPanelFilterUPP )
NewQTSPanelFilterUPP(QTSPanelFilterProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppQTSPanelFilterProcInfo = 0x000003D0 }; /* pascal 1_byte Func(4_bytes, 4_bytes) */
#ifdef __cplusplus
inline DEFINE_API_C(QTSPanelFilterUPP) NewQTSPanelFilterUPP(QTSPanelFilterProcPtr userRoutine) { return (QTSPanelFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSPanelFilterProcInfo, GetCurrentArchitecture()); }
#else
#define NewQTSPanelFilterUPP(userRoutine) (QTSPanelFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSPanelFilterProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* NewQTSModalFilterUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( QTSModalFilterUPP )
NewQTSModalFilterUPP(QTSModalFilterProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppQTSModalFilterProcInfo = 0x00003FD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
#ifdef __cplusplus
inline DEFINE_API_C(QTSModalFilterUPP) NewQTSModalFilterUPP(QTSModalFilterProcPtr userRoutine) { return (QTSModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSModalFilterProcInfo, GetCurrentArchitecture()); }
#else
#define NewQTSModalFilterUPP(userRoutine) (QTSModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSModalFilterProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* DisposeQTSNotificationUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
DisposeQTSNotificationUPP(QTSNotificationUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeQTSNotificationUPP(QTSNotificationUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeQTSNotificationUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* DisposeQTSPanelFilterUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.6 and later
* Mac OS X: in version 10.1 and later
*/
EXTERN_API_C( void )
DisposeQTSPanelFilterUPP(QTSPanelFilterUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeQTSPanelFilterUPP(QTSPanelFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeQTSPanelFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* DisposeQTSModalFilterUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( void )
DisposeQTSModalFilterUPP(QTSModalFilterUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeQTSModalFilterUPP(QTSModalFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeQTSModalFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* InvokeQTSNotificationUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( ComponentResult )
InvokeQTSNotificationUPP(
ComponentResult inErr,
OSType inNotificationType,
void * inNotificationParams,
void * inRefCon,
QTSNotificationUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(ComponentResult) InvokeQTSNotificationUPP(ComponentResult inErr, OSType inNotificationType, void * inNotificationParams, void * inRefCon, QTSNotificationUPP userUPP) { return (ComponentResult)CALL_FOUR_PARAMETER_UPP(userUPP, uppQTSNotificationProcInfo, inErr, inNotificationType, inNotificationParams, inRefCon); }
#else
#define InvokeQTSNotificationUPP(inErr, inNotificationType, inNotificationParams, inRefCon, userUPP) (ComponentResult)CALL_FOUR_PARAMETER_UPP((userUPP), uppQTSNotificationProcInfo, (inErr), (inNotificationType), (inNotificationParams), (inRefCon))
#endif
#endif
/*
* InvokeQTSPanelFilterUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.6 and later
* Mac OS X: in version 10.1 and later
*/
EXTERN_API_C( Boolean )
InvokeQTSPanelFilterUPP(
QTSPanelFilterParams * inParams,
void * inRefCon,
QTSPanelFilterUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(Boolean) InvokeQTSPanelFilterUPP(QTSPanelFilterParams * inParams, void * inRefCon, QTSPanelFilterUPP userUPP) { return (Boolean)CALL_TWO_PARAMETER_UPP(userUPP, uppQTSPanelFilterProcInfo, inParams, inRefCon); }
#else
#define InvokeQTSPanelFilterUPP(inParams, inRefCon, userUPP) (Boolean)CALL_TWO_PARAMETER_UPP((userUPP), uppQTSPanelFilterProcInfo, (inParams), (inRefCon))
#endif
#endif
/*
* InvokeQTSModalFilterUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API_C( Boolean )
InvokeQTSModalFilterUPP(
DialogPtr inDialog,
const EventRecord * inEvent,
SInt16 * ioItemHit,
void * inRefCon,
QTSModalFilterUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(Boolean) InvokeQTSModalFilterUPP(DialogPtr inDialog, const EventRecord * inEvent, SInt16 * ioItemHit, void * inRefCon, QTSModalFilterUPP userUPP) { return (Boolean)CALL_FOUR_PARAMETER_UPP(userUPP, uppQTSModalFilterProcInfo, inDialog, inEvent, ioItemHit, inRefCon); }
#else
#define InvokeQTSModalFilterUPP(inDialog, inEvent, ioItemHit, inRefCon, userUPP) (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppQTSModalFilterProcInfo, (inDialog), (inEvent), (ioItemHit), (inRefCon))
#endif
#endif
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
#define NewQTSNotificationProc(userRoutine) NewQTSNotificationUPP(userRoutine)
#define NewQTSPanelFilterProc(userRoutine) NewQTSPanelFilterUPP(userRoutine)
#define NewQTSModalFilterProc(userRoutine) NewQTSModalFilterUPP(userRoutine)
#define CallQTSNotificationProc(userRoutine, inErr, inNotificationType, inNotificationParams, inRefCon) InvokeQTSNotificationUPP(inErr, inNotificationType, inNotificationParams, inRefCon, userRoutine)
#define CallQTSPanelFilterProc(userRoutine, inParams, inRefCon) InvokeQTSPanelFilterUPP(inParams, inRefCon, userRoutine)
#define CallQTSModalFilterProc(userRoutine, inDialog, inEvent, ioItemHit, inRefCon) InvokeQTSModalFilterUPP(inDialog, inEvent, ioItemHit, inRefCon, userRoutine)
#endif /* CALL_NOT_IN_CARBON */
#endif // !__LP64__
#if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
#endif
#ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
#endif
#ifdef __cplusplus
}
#endif
#endif /* __QUICKTIMESTREAMING__ */