Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2725 lines
82 KiB

  1. /*
  2. File: QuickTimeStreaming.h
  3. Contains: QuickTime Interfaces.
  4. Version: QuickTime 7.3
  5. Copyright: (c) 2007 (c) 1990-2007 by Apple Inc., all rights reserved
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://developer.apple.com/bugreporter/
  9. */
  10. #ifndef __QUICKTIMESTREAMING__
  11. #define __QUICKTIMESTREAMING__
  12. #ifndef __QUICKDRAW__
  13. #include <Quickdraw.h>
  14. #endif
  15. #ifndef __COMPONENTS__
  16. #include <Components.h>
  17. #endif
  18. #ifndef __MACERRORS__
  19. #include <MacErrors.h>
  20. #endif
  21. #ifndef __MOVIES__
  22. #include <Movies.h>
  23. #endif
  24. #ifndef __QUICKTIMECOMPONENTS__
  25. #include <QuickTimeComponents.h>
  26. #endif
  27. #if PRAGMA_ONCE
  28. #pragma once
  29. #endif
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33. #if PRAGMA_IMPORT
  34. #pragma import on
  35. #endif
  36. #if PRAGMA_STRUCT_ALIGN
  37. #pragma options align=mac68k
  38. #elif PRAGMA_STRUCT_PACKPUSH
  39. #pragma pack(push, 2)
  40. #elif PRAGMA_STRUCT_PACK
  41. #pragma pack(2)
  42. #endif
  43. /* QuickTime is not available to 64-bit clients */
  44. #if !__LP64__
  45. enum {
  46. kQTSInfiniteDuration = 0x7FFFFFFF,
  47. kQTSUnknownDuration = 0x00000000,
  48. kQTSNormalForwardRate = 0x00010000,
  49. kQTSStoppedRate = 0x00000000
  50. };
  51. struct QTSPresentationRecord {
  52. long data[1];
  53. };
  54. typedef struct QTSPresentationRecord QTSPresentationRecord;
  55. typedef QTSPresentationRecord * QTSPresentation;
  56. struct QTSStreamRecord {
  57. long data[1];
  58. };
  59. typedef struct QTSStreamRecord QTSStreamRecord;
  60. typedef QTSStreamRecord * QTSStream;
  61. struct QTSEditEntry {
  62. TimeValue64 presentationDuration;
  63. TimeValue64 streamStartTime;
  64. Fixed streamRate;
  65. };
  66. typedef struct QTSEditEntry QTSEditEntry;
  67. struct QTSEditList {
  68. SInt32 numEdits;
  69. QTSEditEntry edits[1];
  70. };
  71. typedef struct QTSEditList QTSEditList;
  72. typedef QTSEditList * QTSEditListPtr;
  73. typedef QTSEditListPtr * QTSEditListHandle;
  74. #define kQTSInvalidPresentation (QTSPresentation)0L
  75. #define kQTSAllPresentations (QTSPresentation)0L
  76. #define kQTSInvalidStream (QTSStream)0L
  77. #define kQTSAllStreams (QTSStream)0L
  78. typedef CALLBACK_API( ComponentResult , QTSNotificationProcPtr )(ComponentResult inErr, OSType inNotificationType, void *inNotificationParams, void *inRefCon);
  79. typedef STACK_UPP_TYPE(QTSNotificationProcPtr) QTSNotificationUPP;
  80. /*-----------------------------------------
  81. Get / Set Info
  82. -----------------------------------------*/
  83. enum {
  84. kQTSGetURLLink = FOUR_CHAR_CODE('gull') /* QTSGetURLLinkRecord* */
  85. };
  86. /* get and set */
  87. enum {
  88. kQTSTargetBufferDurationInfo = FOUR_CHAR_CODE('bufr'), /* Fixed* in seconds; expected, not actual */
  89. kQTSDurationInfo = FOUR_CHAR_CODE('dura'), /* QTSDurationAtom* */
  90. kQTSSoundLevelMeteringEnabledInfo = FOUR_CHAR_CODE('mtrn'), /* Boolean* */
  91. kQTSSoundLevelMeterInfo = FOUR_CHAR_CODE('levm'), /* LevelMeterInfoPtr */
  92. kQTSSourceTrackIDInfo = FOUR_CHAR_CODE('otid'), /* UInt32* */
  93. kQTSSourceLayerInfo = FOUR_CHAR_CODE('olyr'), /* UInt16* */
  94. kQTSSourceLanguageInfo = FOUR_CHAR_CODE('olng'), /* UInt16* */
  95. kQTSSourceTrackFlagsInfo = FOUR_CHAR_CODE('otfl'), /* SInt32* */
  96. kQTSSourceDimensionsInfo = FOUR_CHAR_CODE('odim'), /* QTSDimensionParams* */
  97. kQTSSourceVolumesInfo = FOUR_CHAR_CODE('ovol'), /* QTSVolumesParams* */
  98. kQTSSourceMatrixInfo = FOUR_CHAR_CODE('omat'), /* MatrixRecord* */
  99. kQTSSourceClipRectInfo = FOUR_CHAR_CODE('oclp'), /* Rect* */
  100. kQTSSourceGraphicsModeInfo = FOUR_CHAR_CODE('ogrm'), /* QTSGraphicsModeParams* */
  101. kQTSSourceScaleInfo = FOUR_CHAR_CODE('oscl'), /* Point* */
  102. kQTSSourceBoundingRectInfo = FOUR_CHAR_CODE('orct'), /* Rect* */
  103. kQTSSourceUserDataInfo = FOUR_CHAR_CODE('oudt'), /* UserData */
  104. kQTSSourceInputMapInfo = FOUR_CHAR_CODE('oimp'), /* QTAtomContainer */
  105. kQTSInfo_DataProc = FOUR_CHAR_CODE('datp'), /* QTSDataProcParams* */
  106. kQTSInfo_SendDataExtras = FOUR_CHAR_CODE('dext'), /* QTSSendDataExtrasParams* */
  107. kQTSInfo_HintTrackID = FOUR_CHAR_CODE('htid'), /* long* */
  108. kQTSInfo_URL = FOUR_CHAR_CODE('url '), /* Handle*, cstring in handle */
  109. kQTSInfo_Authentication = FOUR_CHAR_CODE('auup'), /* QTSAuthenticationParams */
  110. kQTSInfo_MediaPacketizer = FOUR_CHAR_CODE('rmpk') /* ComponentInstance */
  111. };
  112. /* get only */
  113. enum {
  114. kQTSStatisticsInfo = FOUR_CHAR_CODE('stat'), /* QTSStatisticsParams* */
  115. kQTSMinStatusDimensionsInfo = FOUR_CHAR_CODE('mstd'), /* QTSDimensionParams* */
  116. kQTSNormalStatusDimensionsInfo = FOUR_CHAR_CODE('nstd'), /* QTSDimensionParams* */
  117. kQTSTotalDataRateInfo = FOUR_CHAR_CODE('drtt'), /* UInt32*, add to what's there */
  118. kQTSTotalDataRateInInfo = FOUR_CHAR_CODE('drti'), /* UInt32*, add to what's there */
  119. kQTSTotalDataRateOutInfo = FOUR_CHAR_CODE('drto'), /* UInt32*, add to what's there */
  120. kQTSLostPercentInfo = FOUR_CHAR_CODE('lpct'), /* QTSLostPercentParams*, add to what's there */
  121. kQTSNumViewersInfo = FOUR_CHAR_CODE('nviw'), /* UInt32* */
  122. kQTSMediaTypeInfo = FOUR_CHAR_CODE('mtyp'), /* OSType* */
  123. kQTSNameInfo = FOUR_CHAR_CODE('name'), /* QTSNameParams* */
  124. kQTSCanHandleSendDataType = FOUR_CHAR_CODE('chsd'), /* QTSCanHandleSendDataTypeParams* */
  125. kQTSAnnotationsInfo = FOUR_CHAR_CODE('meta'), /* QTAtomContainer */
  126. kQTSRemainingBufferTimeInfo = FOUR_CHAR_CODE('btms'), /* UInt32* remaining buffer time before playback, in microseconds */
  127. kQTSInfo_SettingsText = FOUR_CHAR_CODE('sttx'), /* QTSSettingsTextParams* */
  128. kQTSInfo_AverageFrameRate = FOUR_CHAR_CODE('fps ') /* UnsignedFixed* */
  129. };
  130. struct QTSAuthenticationParams {
  131. SInt32 flags;
  132. const char * userID; /* caller disposes of pointer*/
  133. const char * password; /* caller disposes of pointer*/
  134. };
  135. typedef struct QTSAuthenticationParams QTSAuthenticationParams;
  136. enum {
  137. kQTSTargetBufferDurationTimeScale = 1000
  138. };
  139. struct QTSPanelFilterParams {
  140. SInt32 version;
  141. QTSStream inStream;
  142. OSType inPanelType;
  143. OSType inPanelSubType;
  144. QTAtomSpec details;
  145. };
  146. typedef struct QTSPanelFilterParams QTSPanelFilterParams;
  147. /* return true to keep this panel*/
  148. typedef CALLBACK_API( Boolean , QTSPanelFilterProcPtr )(QTSPanelFilterParams *inParams, void *inRefCon);
  149. typedef STACK_UPP_TYPE(QTSPanelFilterProcPtr) QTSPanelFilterUPP;
  150. enum {
  151. kQTSSettingsTextSummary = FOUR_CHAR_CODE('set1'),
  152. kQTSSettingsTextDetails = FOUR_CHAR_CODE('setd')
  153. };
  154. struct QTSSettingsTextParams {
  155. SInt32 flags; /* None yet defined*/
  156. OSType inSettingsSelector; /* which kind of setting you want from enum above*/
  157. Handle outSettingsAsText; /* QTS allocates; Caller disposes*/
  158. QTSPanelFilterUPP inPanelFilterProc; /* To get a subset filter with this */
  159. void * inPanelFilterProcRefCon;
  160. };
  161. typedef struct QTSSettingsTextParams QTSSettingsTextParams;
  162. struct QTSCanHandleSendDataTypeParams {
  163. SInt32 modifierTypeOrInputID;
  164. Boolean isModifierType;
  165. Boolean returnedCanHandleSendDataType; /* callee sets to true if it can handle it*/
  166. };
  167. typedef struct QTSCanHandleSendDataTypeParams QTSCanHandleSendDataTypeParams;
  168. struct QTSNameParams {
  169. SInt32 maxNameLength;
  170. SInt32 requestedLanguage;
  171. SInt32 returnedActualLanguage;
  172. unsigned char * returnedName; /* pascal string; caller supplies*/
  173. };
  174. typedef struct QTSNameParams QTSNameParams;
  175. struct QTSLostPercentParams {
  176. UInt32 receivedPkts;
  177. UInt32 lostPkts;
  178. Fixed percent;
  179. };
  180. typedef struct QTSLostPercentParams QTSLostPercentParams;
  181. struct QTSDimensionParams {
  182. Fixed width;
  183. Fixed height;
  184. };
  185. typedef struct QTSDimensionParams QTSDimensionParams;
  186. struct QTSVolumesParams {
  187. SInt16 leftVolume;
  188. SInt16 rightVolume;
  189. };
  190. typedef struct QTSVolumesParams QTSVolumesParams;
  191. struct QTSGraphicsModeParams {
  192. SInt16 graphicsMode;
  193. RGBColor opColor;
  194. };
  195. typedef struct QTSGraphicsModeParams QTSGraphicsModeParams;
  196. struct QTSGetURLLinkRecord {
  197. Point displayWhere;
  198. Handle returnedURLLink;
  199. };
  200. typedef struct QTSGetURLLinkRecord QTSGetURLLinkRecord;
  201. enum {
  202. kQTSDataProcParamsVersion1 = 1
  203. };
  204. enum {
  205. kQTSDataProcType_MediaSample = FOUR_CHAR_CODE('mdia'),
  206. kQTSDataProcType_HintSample = FOUR_CHAR_CODE('hint')
  207. };
  208. struct QTSDataProcParams {
  209. SInt32 version;
  210. SInt32 flags;
  211. QTSStream stream;
  212. OSType procType;
  213. QTSNotificationUPP proc;
  214. void * procRefCon;
  215. };
  216. typedef struct QTSDataProcParams QTSDataProcParams;
  217. enum {
  218. kQTSDataProcSelector_SampleData = FOUR_CHAR_CODE('samp'),
  219. kQTSDataProcSelector_UserData = FOUR_CHAR_CODE('user')
  220. };
  221. enum {
  222. kQTSSampleDataCallbackParamsVersion1 = 1
  223. };
  224. struct QTSSampleDataCallbackParams {
  225. SInt32 version;
  226. SInt32 flags;
  227. QTSStream stream;
  228. OSType procType;
  229. OSType mediaType;
  230. TimeScale mediaTimeScale;
  231. SampleDescriptionHandle sampleDesc;
  232. UInt32 sampleDescSeed;
  233. TimeValue64 sampleTime;
  234. TimeValue64 duration; /* could be 0 */
  235. SInt32 sampleFlags;
  236. UInt32 dataLength;
  237. const void * data;
  238. };
  239. typedef struct QTSSampleDataCallbackParams QTSSampleDataCallbackParams;
  240. enum {
  241. kQTSUserDataCallbackParamsVersion1 = 1
  242. };
  243. struct QTSUserDataCallbackParams {
  244. SInt32 version;
  245. SInt32 flags;
  246. QTSStream stream;
  247. OSType procType;
  248. OSType userDataType;
  249. Handle userDataHandle; /* caller must make copy if it wants to keep the data around*/
  250. };
  251. typedef struct QTSUserDataCallbackParams QTSUserDataCallbackParams;
  252. enum {
  253. kQTSSendDataExtrasParamsVersion1 = 1
  254. };
  255. struct QTSSendDataExtrasParams {
  256. SInt32 version;
  257. SInt32 flags;
  258. OSType procType;
  259. };
  260. typedef struct QTSSendDataExtrasParams QTSSendDataExtrasParams;
  261. typedef CALLBACK_API( Boolean , QTSModalFilterProcPtr )(DialogPtr inDialog, const EventRecord *inEvent, SInt16 *ioItemHit, void *inRefCon);
  262. typedef STACK_UPP_TYPE(QTSModalFilterProcPtr) QTSModalFilterUPP;
  263. /*-----------------------------------------
  264. Characteristics
  265. -----------------------------------------*/
  266. /* characteristics in Movies.h work here too */
  267. enum {
  268. kQTSSupportsPerStreamControlCharacteristic = FOUR_CHAR_CODE('psct')
  269. };
  270. struct QTSVideoParams {
  271. Fixed width;
  272. Fixed height;
  273. MatrixRecord matrix;
  274. CGrafPtr gWorld;
  275. GDHandle gdHandle;
  276. RgnHandle clip;
  277. short graphicsMode;
  278. RGBColor opColor;
  279. };
  280. typedef struct QTSVideoParams QTSVideoParams;
  281. struct QTSAudioParams {
  282. SInt16 leftVolume;
  283. SInt16 rightVolume;
  284. SInt16 bassLevel;
  285. SInt16 trebleLevel;
  286. short frequencyBandsCount;
  287. void * frequencyBands;
  288. Boolean levelMeteringEnabled;
  289. };
  290. typedef struct QTSAudioParams QTSAudioParams;
  291. struct QTSMediaParams {
  292. QTSVideoParams v;
  293. QTSAudioParams a;
  294. };
  295. typedef struct QTSMediaParams QTSMediaParams;
  296. enum {
  297. kQTSMustDraw = 1 << 3,
  298. kQTSAtEnd = 1 << 4,
  299. kQTSPreflightDraw = 1 << 5,
  300. kQTSSyncDrawing = 1 << 6
  301. };
  302. /* media task result flags */
  303. enum {
  304. kQTSDidDraw = 1 << 0,
  305. kQTSNeedsToDraw = 1 << 2,
  306. kQTSDrawAgain = 1 << 3,
  307. kQTSPartialDraw = 1 << 4
  308. };
  309. /*============================================================================
  310. Notifications
  311. ============================================================================*/
  312. /* ------ notification types ------ */
  313. enum {
  314. kQTSNullNotification = FOUR_CHAR_CODE('null'), /* NULL */
  315. kQTSErrorNotification = FOUR_CHAR_CODE('err '), /* QTSErrorParams*, optional */
  316. kQTSNewPresDetectedNotification = FOUR_CHAR_CODE('newp'), /* QTSNewPresDetectedParams* */
  317. kQTSPresBeginChangingNotification = FOUR_CHAR_CODE('prcb'), /* NULL */
  318. kQTSPresDoneChangingNotification = FOUR_CHAR_CODE('prcd'), /* NULL */
  319. kQTSPresentationChangedNotification = FOUR_CHAR_CODE('prch'), /* NULL */
  320. kQTSNewStreamNotification = FOUR_CHAR_CODE('stnw'), /* QTSNewStreamParams* */
  321. kQTSStreamBeginChangingNotification = FOUR_CHAR_CODE('stcb'), /* QTSStream */
  322. kQTSStreamDoneChangingNotification = FOUR_CHAR_CODE('stcd'), /* QTSStream */
  323. kQTSStreamChangedNotification = FOUR_CHAR_CODE('stch'), /* QTSStreamChangedParams* */
  324. kQTSStreamGoneNotification = FOUR_CHAR_CODE('stgn'), /* QTSStreamGoneParams* */
  325. kQTSPreviewAckNotification = FOUR_CHAR_CODE('pvak'), /* QTSStream */
  326. kQTSPrerollAckNotification = FOUR_CHAR_CODE('pack'), /* QTSStream */
  327. kQTSStartAckNotification = FOUR_CHAR_CODE('sack'), /* QTSStream */
  328. kQTSStopAckNotification = FOUR_CHAR_CODE('xack'), /* QTSStream */
  329. kQTSStatusNotification = FOUR_CHAR_CODE('stat'), /* QTSStatusParams* */
  330. kQTSURLNotification = FOUR_CHAR_CODE('url '), /* QTSURLParams* */
  331. kQTSDurationNotification = FOUR_CHAR_CODE('dura'), /* QTSDurationAtom* */
  332. kQTSNewPresentationNotification = FOUR_CHAR_CODE('nprs'), /* QTSPresentation */
  333. kQTSPresentationGoneNotification = FOUR_CHAR_CODE('xprs'), /* QTSPresentation */
  334. kQTSPresentationDoneNotification = FOUR_CHAR_CODE('pdon'), /* NULL */
  335. kQTSBandwidthAlertNotification = FOUR_CHAR_CODE('bwal'), /* QTSBandwidthAlertParams* */
  336. kQTSAnnotationsChangedNotification = FOUR_CHAR_CODE('meta') /* NULL */
  337. };
  338. /* flags for QTSErrorParams */
  339. enum {
  340. kQTSFatalErrorFlag = 0x00000001
  341. };
  342. struct QTSErrorParams {
  343. const char * errorString;
  344. SInt32 flags;
  345. };
  346. typedef struct QTSErrorParams QTSErrorParams;
  347. struct QTSNewPresDetectedParams {
  348. void * data;
  349. };
  350. typedef struct QTSNewPresDetectedParams QTSNewPresDetectedParams;
  351. struct QTSNewStreamParams {
  352. QTSStream stream;
  353. };
  354. typedef struct QTSNewStreamParams QTSNewStreamParams;
  355. struct QTSStreamChangedParams {
  356. QTSStream stream;
  357. ComponentInstance mediaComponent; /* could be NULL */
  358. };
  359. typedef struct QTSStreamChangedParams QTSStreamChangedParams;
  360. struct QTSStreamGoneParams {
  361. QTSStream stream;
  362. };
  363. typedef struct QTSStreamGoneParams QTSStreamGoneParams;
  364. struct QTSStatusParams {
  365. UInt32 status;
  366. const char * statusString;
  367. UInt32 detailedStatus;
  368. const char * detailedStatusString;
  369. };
  370. typedef struct QTSStatusParams QTSStatusParams;
  371. struct QTSInfoParams {
  372. OSType infoType;
  373. void * infoParams;
  374. };
  375. typedef struct QTSInfoParams QTSInfoParams;
  376. struct QTSURLParams {
  377. UInt32 urlLength;
  378. const char * url;
  379. };
  380. typedef struct QTSURLParams QTSURLParams;
  381. enum {
  382. kQTSBandwidthAlertNeedToStop = 1 << 0,
  383. kQTSBandwidthAlertRestartAt = 1 << 1
  384. };
  385. struct QTSBandwidthAlertParams {
  386. SInt32 flags;
  387. TimeValue restartAt; /* new field in QT 4.1*/
  388. void * reserved;
  389. };
  390. typedef struct QTSBandwidthAlertParams QTSBandwidthAlertParams;
  391. /*============================================================================
  392. Presentation
  393. ============================================================================*/
  394. /*-----------------------------------------
  395. Flags
  396. -----------------------------------------*/
  397. /* flags for NewPresentationFromData */
  398. enum {
  399. kQTSAutoModeFlag = 0x00000001,
  400. kQTSDontShowStatusFlag = 0x00000008,
  401. kQTSSendMediaFlag = 0x00010000,
  402. kQTSReceiveMediaFlag = 0x00020000
  403. };
  404. struct QTSNewPresentationParams {
  405. OSType dataType;
  406. const void * data;
  407. UInt32 dataLength;
  408. QTSEditListHandle editList;
  409. SInt32 flags;
  410. TimeScale timeScale; /* set to 0 for default timescale */
  411. QTSMediaParams * mediaParams;
  412. QTSNotificationUPP notificationProc;
  413. void * notificationRefCon;
  414. };
  415. typedef struct QTSNewPresentationParams QTSNewPresentationParams;
  416. struct QTSPresParams {
  417. UInt32 version;
  418. QTSEditListHandle editList;
  419. SInt32 flags;
  420. TimeScale timeScale; /* set to 0 for default timescale */
  421. QTSMediaParams * mediaParams;
  422. QTSNotificationUPP notificationProc;
  423. void * notificationRefCon;
  424. };
  425. typedef struct QTSPresParams QTSPresParams;
  426. enum {
  427. kQTSPresParamsVersion1 = 1
  428. };
  429. struct QTSPresIdleParams {
  430. QTSStream stream;
  431. TimeValue64 movieTimeToDisplay;
  432. SInt32 flagsIn;
  433. SInt32 flagsOut;
  434. };
  435. typedef struct QTSPresIdleParams QTSPresIdleParams;
  436. enum {
  437. kQTSExportFlag_ShowDialog = 0x00000001
  438. };
  439. enum {
  440. kQTSExportParamsVersion1 = 1
  441. };
  442. struct QTSExportParams {
  443. SInt32 version;
  444. OSType exportType;
  445. void * exportExtraData;
  446. OSType destinationContainerType;
  447. void * destinationContainerData;
  448. void * destinationContainerExtras;
  449. SInt32 flagsIn;
  450. SInt32 flagsOut;
  451. QTSModalFilterUPP filterProc;
  452. void * filterProcRefCon;
  453. Component exportComponent; /* NULL unless you want to override */
  454. };
  455. typedef struct QTSExportParams QTSExportParams;
  456. /*-----------------------------------------
  457. Toolbox Init/Close
  458. -----------------------------------------*/
  459. /* all "apps" must call this */
  460. /*
  461. * InitializeQTS()
  462. *
  463. * Availability:
  464. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  465. * CarbonLib: in CarbonLib 1.1 and later
  466. * Mac OS X: in version 10.0 and later
  467. * Windows: in QTSClient.lib 4.0 and later
  468. */
  469. EXTERN_API_C( OSErr )
  470. InitializeQTS(void);
  471. /*
  472. * TerminateQTS()
  473. *
  474. * Availability:
  475. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  476. * CarbonLib: in CarbonLib 1.1 and later
  477. * Mac OS X: in version 10.0 and later
  478. * Windows: in QTSClient.lib 4.0 and later
  479. */
  480. EXTERN_API_C( OSErr )
  481. TerminateQTS(void);
  482. /*-----------------------------------------
  483. Presentation Functions
  484. -----------------------------------------*/
  485. /*
  486. * QTSNewPresentation()
  487. *
  488. * Availability:
  489. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  490. * CarbonLib: in CarbonLib 1.1 and later
  491. * Mac OS X: in version 10.0 and later
  492. * Windows: in QTSClient.lib 4.0 and later
  493. */
  494. EXTERN_API_C( OSErr )
  495. QTSNewPresentation(
  496. const QTSNewPresentationParams * inParams,
  497. QTSPresentation * outPresentation);
  498. /*
  499. * QTSNewPresentationFromData()
  500. *
  501. * Availability:
  502. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  503. * CarbonLib: in CarbonLib 1.3 and later
  504. * Mac OS X: in version 10.0 and later
  505. * Windows: in QTSClient.lib 5.0 and later
  506. */
  507. EXTERN_API_C( OSErr )
  508. QTSNewPresentationFromData(
  509. OSType inDataType,
  510. const void * inData,
  511. const SInt64 * inDataLength,
  512. const QTSPresParams * inPresParams,
  513. QTSPresentation * outPresentation);
  514. /*
  515. * QTSNewPresentationFromFile()
  516. *
  517. * Availability:
  518. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  519. * CarbonLib: in CarbonLib 1.3 and later
  520. * Mac OS X: in version 10.0 and later
  521. * Windows: in QTSClient.lib 5.0 and later
  522. */
  523. EXTERN_API_C( OSErr )
  524. QTSNewPresentationFromFile(
  525. const FSSpec * inFileSpec,
  526. const QTSPresParams * inPresParams,
  527. QTSPresentation * outPresentation);
  528. /*
  529. * QTSNewPresentationFromDataRef()
  530. *
  531. * Availability:
  532. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  533. * CarbonLib: in CarbonLib 1.3 and later
  534. * Mac OS X: in version 10.0 and later
  535. * Windows: in QTSClient.lib 5.0 and later
  536. */
  537. EXTERN_API_C( OSErr )
  538. QTSNewPresentationFromDataRef(
  539. Handle inDataRef,
  540. OSType inDataRefType,
  541. const QTSPresParams * inPresParams,
  542. QTSPresentation * outPresentation);
  543. /*
  544. * QTSDisposePresentation()
  545. *
  546. * Availability:
  547. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  548. * CarbonLib: in CarbonLib 1.1 and later
  549. * Mac OS X: in version 10.0 and later
  550. * Windows: in QTSClient.lib 4.0 and later
  551. */
  552. EXTERN_API_C( OSErr )
  553. QTSDisposePresentation(
  554. QTSPresentation inPresentation,
  555. SInt32 inFlags);
  556. /*
  557. * QTSPresExport()
  558. *
  559. * Availability:
  560. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  561. * CarbonLib: in CarbonLib 1.3 and later
  562. * Mac OS X: in version 10.0 and later
  563. * Windows: in QTSClient.lib 5.0 and later
  564. */
  565. EXTERN_API_C( OSErr )
  566. QTSPresExport(
  567. QTSPresentation inPresentation,
  568. QTSStream inStream,
  569. QTSExportParams * inExportParams);
  570. /*
  571. * QTSPresIdle()
  572. *
  573. * Availability:
  574. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  575. * CarbonLib: in CarbonLib 1.1 and later
  576. * Mac OS X: in version 10.0 and later
  577. * Windows: in QTSClient.lib 4.0 and later
  578. */
  579. EXTERN_API_C( void )
  580. QTSPresIdle(
  581. QTSPresentation inPresentation,
  582. QTSPresIdleParams * ioParams);
  583. /*
  584. * QTSPresInvalidateRegion()
  585. *
  586. * Availability:
  587. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  588. * CarbonLib: in CarbonLib 1.1 and later
  589. * Mac OS X: in version 10.0 and later
  590. * Windows: in QTSClient.lib 4.0 and later
  591. */
  592. EXTERN_API_C( OSErr )
  593. QTSPresInvalidateRegion(
  594. QTSPresentation inPresentation,
  595. RgnHandle inRegion);
  596. /*-----------------------------------------
  597. Presentation Configuration
  598. -----------------------------------------*/
  599. /*
  600. * QTSPresSetFlags()
  601. *
  602. * Availability:
  603. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  604. * CarbonLib: in CarbonLib 1.1 and later
  605. * Mac OS X: in version 10.0 and later
  606. * Windows: in QTSClient.lib 4.0 and later
  607. */
  608. EXTERN_API_C( OSErr )
  609. QTSPresSetFlags(
  610. QTSPresentation inPresentation,
  611. SInt32 inFlags,
  612. SInt32 inFlagsMask);
  613. /*
  614. * QTSPresGetFlags()
  615. *
  616. * Availability:
  617. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  618. * CarbonLib: in CarbonLib 1.1 and later
  619. * Mac OS X: in version 10.0 and later
  620. * Windows: in QTSClient.lib 4.0 and later
  621. */
  622. EXTERN_API_C( OSErr )
  623. QTSPresGetFlags(
  624. QTSPresentation inPresentation,
  625. SInt32 * outFlags);
  626. /*
  627. * QTSPresGetTimeBase()
  628. *
  629. * Availability:
  630. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  631. * CarbonLib: in CarbonLib 1.1 and later
  632. * Mac OS X: in version 10.0 and later
  633. * Windows: in QTSClient.lib 4.0 and later
  634. */
  635. EXTERN_API_C( OSErr )
  636. QTSPresGetTimeBase(
  637. QTSPresentation inPresentation,
  638. TimeBase * outTimeBase);
  639. /*
  640. * QTSPresGetTimeScale()
  641. *
  642. * Availability:
  643. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  644. * CarbonLib: in CarbonLib 1.1 and later
  645. * Mac OS X: in version 10.0 and later
  646. * Windows: in QTSClient.lib 4.0 and later
  647. */
  648. EXTERN_API_C( OSErr )
  649. QTSPresGetTimeScale(
  650. QTSPresentation inPresentation,
  651. TimeScale * outTimeScale);
  652. /*
  653. * QTSPresSetInfo()
  654. *
  655. * Availability:
  656. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  657. * CarbonLib: in CarbonLib 1.1 and later
  658. * Mac OS X: in version 10.0 and later
  659. * Windows: in QTSClient.lib 4.0 and later
  660. */
  661. EXTERN_API_C( OSErr )
  662. QTSPresSetInfo(
  663. QTSPresentation inPresentation,
  664. QTSStream inStream,
  665. OSType inSelector,
  666. void * ioParam);
  667. /*
  668. * QTSPresGetInfo()
  669. *
  670. * Availability:
  671. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  672. * CarbonLib: in CarbonLib 1.1 and later
  673. * Mac OS X: in version 10.0 and later
  674. * Windows: in QTSClient.lib 4.0 and later
  675. */
  676. EXTERN_API_C( OSErr )
  677. QTSPresGetInfo(
  678. QTSPresentation inPresentation,
  679. QTSStream inStream,
  680. OSType inSelector,
  681. void * ioParam);
  682. /*
  683. * QTSPresHasCharacteristic()
  684. *
  685. * Availability:
  686. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  687. * CarbonLib: in CarbonLib 1.1 and later
  688. * Mac OS X: in version 10.0 and later
  689. * Windows: in QTSClient.lib 4.0 and later
  690. */
  691. EXTERN_API_C( OSErr )
  692. QTSPresHasCharacteristic(
  693. QTSPresentation inPresentation,
  694. QTSStream inStream,
  695. OSType inCharacteristic,
  696. Boolean * outHasIt);
  697. /*
  698. * QTSPresSetNotificationProc()
  699. *
  700. * Availability:
  701. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  702. * CarbonLib: in CarbonLib 1.1 and later
  703. * Mac OS X: in version 10.0 and later
  704. * Windows: in QTSClient.lib 4.0 and later
  705. */
  706. EXTERN_API_C( OSErr )
  707. QTSPresSetNotificationProc(
  708. QTSPresentation inPresentation,
  709. QTSNotificationUPP inNotificationProc,
  710. void * inRefCon);
  711. /*
  712. * QTSPresGetNotificationProc()
  713. *
  714. * Availability:
  715. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  716. * CarbonLib: in CarbonLib 1.1 and later
  717. * Mac OS X: in version 10.0 and later
  718. * Windows: in QTSClient.lib 4.0 and later
  719. */
  720. EXTERN_API_C( OSErr )
  721. QTSPresGetNotificationProc(
  722. QTSPresentation inPresentation,
  723. QTSNotificationUPP * outNotificationProc,
  724. void ** outRefCon);
  725. /*-----------------------------------------
  726. Presentation Control
  727. -----------------------------------------*/
  728. /*
  729. * QTSPresPreview()
  730. *
  731. * Availability:
  732. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  733. * CarbonLib: in CarbonLib 1.3 and later
  734. * Mac OS X: in version 10.0 and later
  735. */
  736. EXTERN_API_C( OSErr )
  737. QTSPresPreview(
  738. QTSPresentation inPresentation,
  739. QTSStream inStream,
  740. const TimeValue64 * inTimeValue,
  741. Fixed inRate,
  742. SInt32 inFlags);
  743. /*
  744. * QTSPresPreroll()
  745. *
  746. * Availability:
  747. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  748. * CarbonLib: in CarbonLib 1.1 and later
  749. * Mac OS X: in version 10.0 and later
  750. * Windows: in QTSClient.lib 4.0 and later
  751. */
  752. EXTERN_API_C( OSErr )
  753. QTSPresPreroll(
  754. QTSPresentation inPresentation,
  755. QTSStream inStream,
  756. UInt32 inTimeValue,
  757. Fixed inRate,
  758. SInt32 inFlags);
  759. /*
  760. * QTSPresPreroll64()
  761. *
  762. * Availability:
  763. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  764. * CarbonLib: in CarbonLib 1.1 and later
  765. * Mac OS X: in version 10.0 and later
  766. * Windows: in QTSClient.lib 4.1 and later
  767. */
  768. EXTERN_API_C( OSErr )
  769. QTSPresPreroll64(
  770. QTSPresentation inPresentation,
  771. QTSStream inStream,
  772. const TimeValue64 * inPrerollTime,
  773. Fixed inRate,
  774. SInt32 inFlags);
  775. /*
  776. * QTSPresStart()
  777. *
  778. * Availability:
  779. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  780. * CarbonLib: in CarbonLib 1.1 and later
  781. * Mac OS X: in version 10.0 and later
  782. * Windows: in QTSClient.lib 4.0 and later
  783. */
  784. EXTERN_API_C( OSErr )
  785. QTSPresStart(
  786. QTSPresentation inPresentation,
  787. QTSStream inStream,
  788. SInt32 inFlags);
  789. /*
  790. * QTSPresSkipTo()
  791. *
  792. * Availability:
  793. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  794. * CarbonLib: in CarbonLib 1.1 and later
  795. * Mac OS X: in version 10.0 and later
  796. * Windows: in QTSClient.lib 4.0 and later
  797. */
  798. EXTERN_API_C( OSErr )
  799. QTSPresSkipTo(
  800. QTSPresentation inPresentation,
  801. UInt32 inTimeValue);
  802. /*
  803. * QTSPresSkipTo64()
  804. *
  805. * Availability:
  806. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  807. * CarbonLib: in CarbonLib 1.1 and later
  808. * Mac OS X: in version 10.0 and later
  809. * Windows: in QTSClient.lib 4.1 and later
  810. */
  811. EXTERN_API_C( OSErr )
  812. QTSPresSkipTo64(
  813. QTSPresentation inPresentation,
  814. const TimeValue64 * inTimeValue);
  815. /*
  816. * QTSPresStop()
  817. *
  818. * Availability:
  819. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  820. * CarbonLib: in CarbonLib 1.1 and later
  821. * Mac OS X: in version 10.0 and later
  822. * Windows: in QTSClient.lib 4.0 and later
  823. */
  824. EXTERN_API_C( OSErr )
  825. QTSPresStop(
  826. QTSPresentation inPresentation,
  827. QTSStream inStream,
  828. SInt32 inFlags);
  829. /*============================================================================
  830. Streams
  831. ============================================================================*/
  832. /*-----------------------------------------
  833. Stream Functions
  834. -----------------------------------------*/
  835. /*
  836. * QTSPresNewStream()
  837. *
  838. * Availability:
  839. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  840. * CarbonLib: in CarbonLib 1.1 and later
  841. * Mac OS X: in version 10.0 and later
  842. * Windows: in QTSClient.lib 4.0 and later
  843. */
  844. EXTERN_API_C( OSErr )
  845. QTSPresNewStream(
  846. QTSPresentation inPresentation,
  847. OSType inDataType,
  848. const void * inData,
  849. UInt32 inDataLength,
  850. SInt32 inFlags,
  851. QTSStream * outStream);
  852. /*
  853. * QTSDisposeStream()
  854. *
  855. * Availability:
  856. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  857. * CarbonLib: in CarbonLib 1.1 and later
  858. * Mac OS X: in version 10.0 and later
  859. * Windows: in QTSClient.lib 4.0 and later
  860. */
  861. EXTERN_API_C( OSErr )
  862. QTSDisposeStream(
  863. QTSStream inStream,
  864. SInt32 inFlags);
  865. /*
  866. * QTSPresGetNumStreams()
  867. *
  868. * Availability:
  869. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  870. * CarbonLib: in CarbonLib 1.1 and later
  871. * Mac OS X: in version 10.0 and later
  872. * Windows: in QTSClient.lib 4.0 and later
  873. */
  874. EXTERN_API_C( UInt32 )
  875. QTSPresGetNumStreams(QTSPresentation inPresentation);
  876. /*
  877. * QTSPresGetIndStream()
  878. *
  879. * Availability:
  880. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  881. * CarbonLib: in CarbonLib 1.1 and later
  882. * Mac OS X: in version 10.0 and later
  883. * Windows: in QTSClient.lib 4.0 and later
  884. */
  885. EXTERN_API_C( QTSStream )
  886. QTSPresGetIndStream(
  887. QTSPresentation inPresentation,
  888. UInt32 inIndex);
  889. /*
  890. * QTSGetStreamPresentation()
  891. *
  892. * Availability:
  893. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  894. * CarbonLib: in CarbonLib 1.1 and later
  895. * Mac OS X: in version 10.0 and later
  896. * Windows: in QTSClient.lib 4.0 and later
  897. */
  898. EXTERN_API_C( QTSPresentation )
  899. QTSGetStreamPresentation(QTSStream inStream);
  900. /*
  901. * QTSPresSetPreferredRate()
  902. *
  903. * Availability:
  904. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  905. * CarbonLib: in CarbonLib 1.1 and later
  906. * Mac OS X: in version 10.0 and later
  907. * Windows: in QTSClient.lib 4.0 and later
  908. */
  909. EXTERN_API_C( OSErr )
  910. QTSPresSetPreferredRate(
  911. QTSPresentation inPresentation,
  912. Fixed inRate,
  913. SInt32 inFlags);
  914. /*
  915. * QTSPresGetPreferredRate()
  916. *
  917. * Availability:
  918. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  919. * CarbonLib: in CarbonLib 1.1 and later
  920. * Mac OS X: in version 10.0 and later
  921. * Windows: in QTSClient.lib 4.0 and later
  922. */
  923. EXTERN_API_C( OSErr )
  924. QTSPresGetPreferredRate(
  925. QTSPresentation inPresentation,
  926. Fixed * outRate);
  927. /*
  928. * QTSPresSetEnable()
  929. *
  930. * Availability:
  931. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  932. * CarbonLib: in CarbonLib 1.1 and later
  933. * Mac OS X: in version 10.0 and later
  934. * Windows: in QTSClient.lib 4.0 and later
  935. */
  936. EXTERN_API_C( OSErr )
  937. QTSPresSetEnable(
  938. QTSPresentation inPresentation,
  939. QTSStream inStream,
  940. Boolean inEnableMode);
  941. /*
  942. * QTSPresGetEnable()
  943. *
  944. * Availability:
  945. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  946. * CarbonLib: in CarbonLib 1.1 and later
  947. * Mac OS X: in version 10.0 and later
  948. * Windows: in QTSClient.lib 4.0 and later
  949. */
  950. EXTERN_API_C( OSErr )
  951. QTSPresGetEnable(
  952. QTSPresentation inPresentation,
  953. QTSStream inStream,
  954. Boolean * outEnableMode);
  955. /*
  956. * QTSPresSetPresenting()
  957. *
  958. * Availability:
  959. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  960. * CarbonLib: in CarbonLib 1.1 and later
  961. * Mac OS X: in version 10.0 and later
  962. * Windows: in QTSClient.lib 4.0 and later
  963. */
  964. EXTERN_API_C( OSErr )
  965. QTSPresSetPresenting(
  966. QTSPresentation inPresentation,
  967. QTSStream inStream,
  968. Boolean inPresentingMode);
  969. /*
  970. * QTSPresGetPresenting()
  971. *
  972. * Availability:
  973. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  974. * CarbonLib: in CarbonLib 1.1 and later
  975. * Mac OS X: in version 10.0 and later
  976. * Windows: in QTSClient.lib 4.0 and later
  977. */
  978. EXTERN_API_C( OSErr )
  979. QTSPresGetPresenting(
  980. QTSPresentation inPresentation,
  981. QTSStream inStream,
  982. Boolean * outPresentingMode);
  983. /*
  984. * QTSPresSetActiveSegment()
  985. *
  986. * Availability:
  987. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  988. * CarbonLib: in CarbonLib 1.1 and later
  989. * Mac OS X: in version 10.0 and later
  990. * Windows: in QTSClient.lib 4.1 and later
  991. */
  992. EXTERN_API_C( OSErr )
  993. QTSPresSetActiveSegment(
  994. QTSPresentation inPresentation,
  995. QTSStream inStream,
  996. const TimeValue64 * inStartTime,
  997. const TimeValue64 * inDuration);
  998. /*
  999. * QTSPresGetActiveSegment()
  1000. *
  1001. * Availability:
  1002. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1003. * CarbonLib: in CarbonLib 1.1 and later
  1004. * Mac OS X: in version 10.0 and later
  1005. * Windows: in QTSClient.lib 4.1 and later
  1006. */
  1007. EXTERN_API_C( OSErr )
  1008. QTSPresGetActiveSegment(
  1009. QTSPresentation inPresentation,
  1010. QTSStream inStream,
  1011. TimeValue64 * outStartTime,
  1012. TimeValue64 * outDuration);
  1013. /*
  1014. * QTSPresSetPlayHints()
  1015. *
  1016. * Availability:
  1017. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1018. * CarbonLib: in CarbonLib 1.1 and later
  1019. * Mac OS X: in version 10.0 and later
  1020. * Windows: in QTSClient.lib 4.0 and later
  1021. */
  1022. EXTERN_API_C( OSErr )
  1023. QTSPresSetPlayHints(
  1024. QTSPresentation inPresentation,
  1025. QTSStream inStream,
  1026. SInt32 inFlags,
  1027. SInt32 inFlagsMask);
  1028. /*
  1029. * QTSPresGetPlayHints()
  1030. *
  1031. * Availability:
  1032. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1033. * CarbonLib: in CarbonLib 1.1 and later
  1034. * Mac OS X: in version 10.0 and later
  1035. * Windows: in QTSClient.lib 4.0 and later
  1036. */
  1037. EXTERN_API_C( OSErr )
  1038. QTSPresGetPlayHints(
  1039. QTSPresentation inPresentation,
  1040. QTSStream inStream,
  1041. SInt32 * outFlags);
  1042. /*-----------------------------------------
  1043. Stream Spatial Functions
  1044. -----------------------------------------*/
  1045. /*
  1046. * QTSPresSetGWorld()
  1047. *
  1048. * Availability:
  1049. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1050. * CarbonLib: in CarbonLib 1.1 and later
  1051. * Mac OS X: in version 10.0 and later
  1052. * Windows: in QTSClient.lib 4.0 and later
  1053. */
  1054. EXTERN_API_C( OSErr )
  1055. QTSPresSetGWorld(
  1056. QTSPresentation inPresentation,
  1057. QTSStream inStream,
  1058. CGrafPtr inGWorld,
  1059. GDHandle inGDHandle);
  1060. /*
  1061. * QTSPresGetGWorld()
  1062. *
  1063. * Availability:
  1064. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1065. * CarbonLib: in CarbonLib 1.1 and later
  1066. * Mac OS X: in version 10.0 and later
  1067. * Windows: in QTSClient.lib 4.0 and later
  1068. */
  1069. EXTERN_API_C( OSErr )
  1070. QTSPresGetGWorld(
  1071. QTSPresentation inPresentation,
  1072. QTSStream inStream,
  1073. CGrafPtr * outGWorld,
  1074. GDHandle * outGDHandle);
  1075. /*
  1076. * QTSPresSetClip()
  1077. *
  1078. * Availability:
  1079. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1080. * CarbonLib: in CarbonLib 1.1 and later
  1081. * Mac OS X: in version 10.0 and later
  1082. * Windows: in QTSClient.lib 4.0 and later
  1083. */
  1084. EXTERN_API_C( OSErr )
  1085. QTSPresSetClip(
  1086. QTSPresentation inPresentation,
  1087. QTSStream inStream,
  1088. RgnHandle inClip);
  1089. /*
  1090. * QTSPresGetClip()
  1091. *
  1092. * Availability:
  1093. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1094. * CarbonLib: in CarbonLib 1.1 and later
  1095. * Mac OS X: in version 10.0 and later
  1096. * Windows: in QTSClient.lib 4.0 and later
  1097. */
  1098. EXTERN_API_C( OSErr )
  1099. QTSPresGetClip(
  1100. QTSPresentation inPresentation,
  1101. QTSStream inStream,
  1102. RgnHandle * outClip);
  1103. /*
  1104. * QTSPresSetMatrix()
  1105. *
  1106. * Availability:
  1107. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1108. * CarbonLib: in CarbonLib 1.1 and later
  1109. * Mac OS X: in version 10.0 and later
  1110. * Windows: in QTSClient.lib 4.0 and later
  1111. */
  1112. EXTERN_API_C( OSErr )
  1113. QTSPresSetMatrix(
  1114. QTSPresentation inPresentation,
  1115. QTSStream inStream,
  1116. const MatrixRecord * inMatrix);
  1117. /*
  1118. * QTSPresGetMatrix()
  1119. *
  1120. * Availability:
  1121. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1122. * CarbonLib: in CarbonLib 1.1 and later
  1123. * Mac OS X: in version 10.0 and later
  1124. * Windows: in QTSClient.lib 4.0 and later
  1125. */
  1126. EXTERN_API_C( OSErr )
  1127. QTSPresGetMatrix(
  1128. QTSPresentation inPresentation,
  1129. QTSStream inStream,
  1130. MatrixRecord * outMatrix);
  1131. /*
  1132. * QTSPresSetDimensions()
  1133. *
  1134. * Availability:
  1135. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1136. * CarbonLib: in CarbonLib 1.1 and later
  1137. * Mac OS X: in version 10.0 and later
  1138. * Windows: in QTSClient.lib 4.0 and later
  1139. */
  1140. EXTERN_API_C( OSErr )
  1141. QTSPresSetDimensions(
  1142. QTSPresentation inPresentation,
  1143. QTSStream inStream,
  1144. Fixed inWidth,
  1145. Fixed inHeight);
  1146. /*
  1147. * QTSPresGetDimensions()
  1148. *
  1149. * Availability:
  1150. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1151. * CarbonLib: in CarbonLib 1.1 and later
  1152. * Mac OS X: in version 10.0 and later
  1153. * Windows: in QTSClient.lib 4.0 and later
  1154. */
  1155. EXTERN_API_C( OSErr )
  1156. QTSPresGetDimensions(
  1157. QTSPresentation inPresentation,
  1158. QTSStream inStream,
  1159. Fixed * outWidth,
  1160. Fixed * outHeight);
  1161. /*
  1162. * QTSPresSetGraphicsMode()
  1163. *
  1164. * Availability:
  1165. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1166. * CarbonLib: in CarbonLib 1.1 and later
  1167. * Mac OS X: in version 10.0 and later
  1168. * Windows: in QTSClient.lib 4.0 and later
  1169. */
  1170. EXTERN_API_C( OSErr )
  1171. QTSPresSetGraphicsMode(
  1172. QTSPresentation inPresentation,
  1173. QTSStream inStream,
  1174. short inMode,
  1175. const RGBColor * inOpColor);
  1176. /*
  1177. * QTSPresGetGraphicsMode()
  1178. *
  1179. * Availability:
  1180. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1181. * CarbonLib: in CarbonLib 1.1 and later
  1182. * Mac OS X: in version 10.0 and later
  1183. * Windows: in QTSClient.lib 4.0 and later
  1184. */
  1185. EXTERN_API_C( OSErr )
  1186. QTSPresGetGraphicsMode(
  1187. QTSPresentation inPresentation,
  1188. QTSStream inStream,
  1189. short * outMode,
  1190. RGBColor * outOpColor);
  1191. /*
  1192. * QTSPresGetPicture()
  1193. *
  1194. * Availability:
  1195. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1196. * CarbonLib: in CarbonLib 1.1 and later
  1197. * Mac OS X: in version 10.0 and later
  1198. * Windows: in QTSClient.lib 4.0 and later
  1199. */
  1200. EXTERN_API_C( OSErr )
  1201. QTSPresGetPicture(
  1202. QTSPresentation inPresentation,
  1203. QTSStream inStream,
  1204. PicHandle * outPicture);
  1205. /*-----------------------------------------
  1206. Stream Sound Functions
  1207. -----------------------------------------*/
  1208. /*
  1209. * QTSPresSetVolumes()
  1210. *
  1211. * Availability:
  1212. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1213. * CarbonLib: in CarbonLib 1.1 and later
  1214. * Mac OS X: in version 10.0 and later
  1215. * Windows: in QTSClient.lib 4.0 and later
  1216. */
  1217. EXTERN_API_C( OSErr )
  1218. QTSPresSetVolumes(
  1219. QTSPresentation inPresentation,
  1220. QTSStream inStream,
  1221. short inLeftVolume,
  1222. short inRightVolume);
  1223. /*
  1224. * QTSPresGetVolumes()
  1225. *
  1226. * Availability:
  1227. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1228. * CarbonLib: in CarbonLib 1.1 and later
  1229. * Mac OS X: in version 10.0 and later
  1230. * Windows: in QTSClient.lib 4.0 and later
  1231. */
  1232. EXTERN_API_C( OSErr )
  1233. QTSPresGetVolumes(
  1234. QTSPresentation inPresentation,
  1235. QTSStream inStream,
  1236. short * outLeftVolume,
  1237. short * outRightVolume);
  1238. /*-----------------------------------------
  1239. Sourcing
  1240. -----------------------------------------*/
  1241. /*
  1242. * QTSPresGetSettingsAsText()
  1243. *
  1244. * Availability:
  1245. * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
  1246. * CarbonLib: in CarbonLib 1.6 and later
  1247. * Mac OS X: in version 10.1 and later
  1248. */
  1249. EXTERN_API_C( OSErr )
  1250. QTSPresGetSettingsAsText(
  1251. QTSPresentation inPresentation,
  1252. QTSStream inStream,
  1253. SInt32 inFlags,
  1254. OSType inSettingsType,
  1255. Handle * outText,
  1256. QTSPanelFilterUPP inPanelFilterProc,
  1257. void * inPanelFilterProcRefCon);
  1258. /*
  1259. * QTSPresSettingsDialog()
  1260. *
  1261. * Availability:
  1262. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1263. * CarbonLib: in CarbonLib 1.3 and later
  1264. * Mac OS X: in version 10.0 and later
  1265. */
  1266. EXTERN_API_C( OSErr )
  1267. QTSPresSettingsDialog(
  1268. QTSPresentation inPresentation,
  1269. QTSStream inStream,
  1270. SInt32 inFlags,
  1271. QTSModalFilterUPP inFilterProc,
  1272. void * inFilterProcRefCon);
  1273. /*
  1274. * QTSPresSettingsDialogWithFilters()
  1275. *
  1276. * Availability:
  1277. * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
  1278. * CarbonLib: in CarbonLib 1.6 and later
  1279. * Mac OS X: in version 10.1 and later
  1280. */
  1281. EXTERN_API_C( OSErr )
  1282. QTSPresSettingsDialogWithFilters(
  1283. QTSPresentation inPresentation,
  1284. QTSStream inStream,
  1285. SInt32 inFlags,
  1286. QTSModalFilterUPP inFilterProc,
  1287. void * inFilterProcRefCon,
  1288. QTSPanelFilterUPP inPanelFilterProc,
  1289. void * inPanelFilterProcRefCon);
  1290. /*
  1291. * QTSPresSetSettings()
  1292. *
  1293. * Availability:
  1294. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1295. * CarbonLib: in CarbonLib 1.3 and later
  1296. * Mac OS X: in version 10.0 and later
  1297. */
  1298. EXTERN_API_C( OSErr )
  1299. QTSPresSetSettings(
  1300. QTSPresentation inPresentation,
  1301. QTSStream inStream,
  1302. QTAtomSpecPtr inSettings,
  1303. SInt32 inFlags);
  1304. /*
  1305. * QTSPresGetSettings()
  1306. *
  1307. * Availability:
  1308. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1309. * CarbonLib: in CarbonLib 1.3 and later
  1310. * Mac OS X: in version 10.0 and later
  1311. */
  1312. EXTERN_API_C( OSErr )
  1313. QTSPresGetSettings(
  1314. QTSPresentation inPresentation,
  1315. QTSStream inStream,
  1316. QTAtomContainer * outSettings,
  1317. SInt32 inFlags);
  1318. /*
  1319. * QTSPresAddSourcer()
  1320. *
  1321. * Availability:
  1322. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1323. * CarbonLib: in CarbonLib 1.3 and later
  1324. * Mac OS X: in version 10.0 and later
  1325. */
  1326. EXTERN_API_C( OSErr )
  1327. QTSPresAddSourcer(
  1328. QTSPresentation inPresentation,
  1329. QTSStream inStream,
  1330. ComponentInstance inSourcer,
  1331. SInt32 inFlags);
  1332. /*
  1333. * QTSPresRemoveSourcer()
  1334. *
  1335. * Availability:
  1336. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1337. * CarbonLib: in CarbonLib 1.3 and later
  1338. * Mac OS X: in version 10.0 and later
  1339. */
  1340. EXTERN_API_C( OSErr )
  1341. QTSPresRemoveSourcer(
  1342. QTSPresentation inPresentation,
  1343. QTSStream inStream,
  1344. ComponentInstance inSourcer,
  1345. SInt32 inFlags);
  1346. /*
  1347. * QTSPresGetNumSourcers()
  1348. *
  1349. * Availability:
  1350. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1351. * CarbonLib: in CarbonLib 1.3 and later
  1352. * Mac OS X: in version 10.0 and later
  1353. */
  1354. EXTERN_API_C( UInt32 )
  1355. QTSPresGetNumSourcers(
  1356. QTSPresentation inPresentation,
  1357. QTSStream inStream);
  1358. /*
  1359. * QTSPresGetIndSourcer()
  1360. *
  1361. * Availability:
  1362. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1363. * CarbonLib: in CarbonLib 1.3 and later
  1364. * Mac OS X: in version 10.0 and later
  1365. */
  1366. EXTERN_API_C( OSErr )
  1367. QTSPresGetIndSourcer(
  1368. QTSPresentation inPresentation,
  1369. QTSStream inStream,
  1370. UInt32 inIndex,
  1371. ComponentInstance * outSourcer);
  1372. /*============================================================================
  1373. Misc
  1374. ============================================================================*/
  1375. /* flags for Get/SetNetworkAppName */
  1376. enum {
  1377. kQTSNetworkAppNameIsFullNameFlag = 0x00000001
  1378. };
  1379. /*
  1380. * QTSSetNetworkAppName()
  1381. *
  1382. * Availability:
  1383. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1384. * CarbonLib: in CarbonLib 1.1 and later
  1385. * Mac OS X: in version 10.0 and later
  1386. * Windows: in QTSClient.lib 4.1 and later
  1387. */
  1388. EXTERN_API_C( OSErr )
  1389. QTSSetNetworkAppName(
  1390. const char * inAppName,
  1391. SInt32 inFlags);
  1392. /*
  1393. * QTSGetNetworkAppName()
  1394. *
  1395. * Availability:
  1396. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1397. * CarbonLib: in CarbonLib 1.1 and later
  1398. * Mac OS X: in version 10.0 and later
  1399. * Windows: in QTSClient.lib 4.1 and later
  1400. */
  1401. EXTERN_API_C( OSErr )
  1402. QTSGetNetworkAppName(
  1403. SInt32 inFlags,
  1404. char ** outCStringPtr);
  1405. /*-----------------------------------------
  1406. Statistics Utilities
  1407. -----------------------------------------*/
  1408. struct QTSStatHelperRecord {
  1409. long data[1];
  1410. };
  1411. typedef struct QTSStatHelperRecord QTSStatHelperRecord;
  1412. typedef QTSStatHelperRecord * QTSStatHelper;
  1413. enum {
  1414. kQTSInvalidStatHelper = 0L
  1415. };
  1416. /* flags for QTSStatHelperNextParams */
  1417. enum {
  1418. kQTSStatHelperReturnPascalStringsFlag = 0x00000001
  1419. };
  1420. struct QTSStatHelperNextParams {
  1421. SInt32 flags;
  1422. OSType returnedStatisticsType;
  1423. QTSStream returnedStream;
  1424. UInt32 maxStatNameLength;
  1425. char * returnedStatName; /* NULL if you don't want it*/
  1426. UInt32 maxStatStringLength;
  1427. char * returnedStatString; /* NULL if you don't want it*/
  1428. UInt32 maxStatUnitLength;
  1429. char * returnedStatUnit; /* NULL if you don't want it*/
  1430. };
  1431. typedef struct QTSStatHelperNextParams QTSStatHelperNextParams;
  1432. struct QTSStatisticsParams {
  1433. OSType statisticsType;
  1434. QTAtomContainer container;
  1435. QTAtom parentAtom;
  1436. SInt32 flags;
  1437. };
  1438. typedef struct QTSStatisticsParams QTSStatisticsParams;
  1439. /* general statistics types */
  1440. enum {
  1441. kQTSAllStatisticsType = FOUR_CHAR_CODE('all '),
  1442. kQTSShortStatisticsType = FOUR_CHAR_CODE('shrt'),
  1443. kQTSSummaryStatisticsType = FOUR_CHAR_CODE('summ')
  1444. };
  1445. /* statistics flags */
  1446. enum {
  1447. kQTSGetNameStatisticsFlag = 0x00000001,
  1448. kQTSDontGetDataStatisticsFlag = 0x00000002,
  1449. kQTSUpdateAtomsStatisticsFlag = 0x00000004,
  1450. kQTSGetUnitsStatisticsFlag = 0x00000008,
  1451. kQTSUpdateAllIfNecessaryStatisticsFlag = 0x00010000
  1452. };
  1453. /* statistics atom types */
  1454. enum {
  1455. kQTSStatisticsStreamAtomType = FOUR_CHAR_CODE('strm'),
  1456. kQTSStatisticsNameAtomType = FOUR_CHAR_CODE('name'), /* chars only, no length or terminator */
  1457. kQTSStatisticsDataFormatAtomType = FOUR_CHAR_CODE('frmt'), /* OSType */
  1458. kQTSStatisticsDataAtomType = FOUR_CHAR_CODE('data'),
  1459. kQTSStatisticsUnitsAtomType = FOUR_CHAR_CODE('unit'), /* OSType */
  1460. kQTSStatisticsUnitsNameAtomType = FOUR_CHAR_CODE('unin') /* chars only, no length or terminator */
  1461. };
  1462. /* statistics data formats */
  1463. enum {
  1464. kQTSStatisticsSInt32DataFormat = FOUR_CHAR_CODE('si32'),
  1465. kQTSStatisticsUInt32DataFormat = FOUR_CHAR_CODE('ui32'),
  1466. kQTSStatisticsSInt16DataFormat = FOUR_CHAR_CODE('si16'),
  1467. kQTSStatisticsUInt16DataFormat = FOUR_CHAR_CODE('ui16'),
  1468. kQTSStatisticsFixedDataFormat = FOUR_CHAR_CODE('fixd'),
  1469. kQTSStatisticsUnsignedFixedDataFormat = FOUR_CHAR_CODE('ufix'),
  1470. kQTSStatisticsStringDataFormat = FOUR_CHAR_CODE('strg'),
  1471. kQTSStatisticsOSTypeDataFormat = FOUR_CHAR_CODE('ostp'),
  1472. kQTSStatisticsRectDataFormat = FOUR_CHAR_CODE('rect'),
  1473. kQTSStatisticsPointDataFormat = FOUR_CHAR_CODE('pont')
  1474. };
  1475. /* statistics units types */
  1476. enum {
  1477. kQTSStatisticsNoUnitsType = 0,
  1478. kQTSStatisticsPercentUnitsType = FOUR_CHAR_CODE('pcnt'),
  1479. kQTSStatisticsBitsPerSecUnitsType = FOUR_CHAR_CODE('bps '),
  1480. kQTSStatisticsFramesPerSecUnitsType = FOUR_CHAR_CODE('fps ')
  1481. };
  1482. /* specific statistics types */
  1483. enum {
  1484. kQTSTotalDataRateStat = FOUR_CHAR_CODE('drtt'),
  1485. kQTSTotalDataRateInStat = FOUR_CHAR_CODE('drti'),
  1486. kQTSTotalDataRateOutStat = FOUR_CHAR_CODE('drto'),
  1487. kQTSNetworkIDStringStat = FOUR_CHAR_CODE('nids')
  1488. };
  1489. /*
  1490. * QTSNewStatHelper()
  1491. *
  1492. * Availability:
  1493. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1494. * CarbonLib: in CarbonLib 1.1 and later
  1495. * Mac OS X: in version 10.0 and later
  1496. * Windows: in QTSClient.lib 4.0 and later
  1497. */
  1498. EXTERN_API_C( OSErr )
  1499. QTSNewStatHelper(
  1500. QTSPresentation inPresentation,
  1501. QTSStream inStream,
  1502. OSType inStatType,
  1503. SInt32 inFlags,
  1504. QTSStatHelper * outStatHelper);
  1505. /*
  1506. * QTSDisposeStatHelper()
  1507. *
  1508. * Availability:
  1509. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1510. * CarbonLib: in CarbonLib 1.1 and later
  1511. * Mac OS X: in version 10.0 and later
  1512. * Windows: in QTSClient.lib 4.0 and later
  1513. */
  1514. EXTERN_API_C( OSErr )
  1515. QTSDisposeStatHelper(QTSStatHelper inStatHelper);
  1516. /*
  1517. * QTSStatHelperGetStats()
  1518. *
  1519. * Availability:
  1520. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1521. * CarbonLib: in CarbonLib 1.1 and later
  1522. * Mac OS X: in version 10.0 and later
  1523. * Windows: in QTSClient.lib 4.0 and later
  1524. */
  1525. EXTERN_API_C( OSErr )
  1526. QTSStatHelperGetStats(QTSStatHelper inStatHelper);
  1527. /*
  1528. * QTSStatHelperResetIter()
  1529. *
  1530. * Availability:
  1531. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1532. * CarbonLib: in CarbonLib 1.1 and later
  1533. * Mac OS X: in version 10.0 and later
  1534. * Windows: in QTSClient.lib 4.0 and later
  1535. */
  1536. EXTERN_API_C( OSErr )
  1537. QTSStatHelperResetIter(QTSStatHelper inStatHelper);
  1538. /*
  1539. * QTSStatHelperNext()
  1540. *
  1541. * Availability:
  1542. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1543. * CarbonLib: in CarbonLib 1.1 and later
  1544. * Mac OS X: in version 10.0 and later
  1545. * Windows: in QTSClient.lib 4.0 and later
  1546. */
  1547. EXTERN_API_C( Boolean )
  1548. QTSStatHelperNext(
  1549. QTSStatHelper inStatHelper,
  1550. QTSStatHelperNextParams * ioParams);
  1551. /*
  1552. * QTSStatHelperGetNumStats()
  1553. *
  1554. * Availability:
  1555. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1556. * CarbonLib: in CarbonLib 1.1 and later
  1557. * Mac OS X: in version 10.0 and later
  1558. * Windows: in QTSClient.lib 4.0 and later
  1559. */
  1560. EXTERN_API_C( UInt32 )
  1561. QTSStatHelperGetNumStats(QTSStatHelper inStatHelper);
  1562. /* used by components to put statistics into the atom container */
  1563. /*
  1564. * QTSGetOrMakeStatAtomForStream()
  1565. *
  1566. * Availability:
  1567. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1568. * CarbonLib: in CarbonLib 1.1 and later
  1569. * Mac OS X: in version 10.0 and later
  1570. * Windows: in QTSClient.lib 4.0 and later
  1571. */
  1572. EXTERN_API_C( OSErr )
  1573. QTSGetOrMakeStatAtomForStream(
  1574. QTAtomContainer inContainer,
  1575. QTSStream inStream,
  1576. QTAtom * outParentAtom);
  1577. /*
  1578. * QTSInsertStatistic()
  1579. *
  1580. * Availability:
  1581. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1582. * CarbonLib: in CarbonLib 1.1 and later
  1583. * Mac OS X: in version 10.0 and later
  1584. * Windows: in QTSClient.lib 4.0 and later
  1585. */
  1586. EXTERN_API_C( OSErr )
  1587. QTSInsertStatistic(
  1588. QTAtomContainer inContainer,
  1589. QTAtom inParentAtom,
  1590. OSType inStatType,
  1591. void * inStatData,
  1592. UInt32 inStatDataLength,
  1593. OSType inStatDataFormat,
  1594. SInt32 inFlags);
  1595. /*
  1596. * QTSInsertStatisticName()
  1597. *
  1598. * Availability:
  1599. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1600. * CarbonLib: in CarbonLib 1.1 and later
  1601. * Mac OS X: in version 10.0 and later
  1602. * Windows: in QTSClient.lib 4.0 and later
  1603. */
  1604. EXTERN_API_C( OSErr )
  1605. QTSInsertStatisticName(
  1606. QTAtomContainer inContainer,
  1607. QTAtom inParentAtom,
  1608. OSType inStatType,
  1609. const char * inStatName,
  1610. UInt32 inStatNameLength);
  1611. /*
  1612. * QTSInsertStatisticUnits()
  1613. *
  1614. * Availability:
  1615. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1616. * CarbonLib: in CarbonLib 1.1 and later
  1617. * Mac OS X: in version 10.0 and later
  1618. * Windows: in QTSClient.lib 4.0 and later
  1619. */
  1620. EXTERN_API_C( OSErr )
  1621. QTSInsertStatisticUnits(
  1622. QTAtomContainer inContainer,
  1623. QTAtom inParentAtom,
  1624. OSType inStatType,
  1625. OSType inUnitsType,
  1626. const char * inUnitsName,
  1627. UInt32 inUnitsNameLength);
  1628. /*============================================================================
  1629. Data Formats
  1630. ============================================================================*/
  1631. /*-----------------------------------------
  1632. Data Types
  1633. -----------------------------------------*/
  1634. /* universal data types */
  1635. enum {
  1636. kQTSNullDataType = FOUR_CHAR_CODE('NULL'),
  1637. kQTSUnknownDataType = FOUR_CHAR_CODE('huh?'),
  1638. kQTSAtomContainerDataType = FOUR_CHAR_CODE('qtac'), /* QTAtomContainer */
  1639. kQTSAtomDataType = FOUR_CHAR_CODE('qtat'), /* QTSAtomContainerDataStruct* */
  1640. kQTSAliasDataType = FOUR_CHAR_CODE('alis'),
  1641. kQTSFileDataType = FOUR_CHAR_CODE('fspc'), /* FSSpec* */
  1642. kQTSFileSpecDataType = FOUR_CHAR_CODE('fspc'), /* FSSpec* */
  1643. kQTSHandleDataType = FOUR_CHAR_CODE('hndl'), /* Handle* */
  1644. kQTSDataRefDataType = FOUR_CHAR_CODE('dref') /* DataReferencePtr */
  1645. };
  1646. /* these data types are specific to presentations */
  1647. enum {
  1648. kQTSRTSPDataType = FOUR_CHAR_CODE('rtsp'),
  1649. kQTSSDPDataType = FOUR_CHAR_CODE('sdp ')
  1650. };
  1651. /*-----------------------------------------
  1652. Atom IDs
  1653. -----------------------------------------*/
  1654. enum {
  1655. kQTSAtomType_Presentation = FOUR_CHAR_CODE('pres'),
  1656. kQTSAtomType_PresentationHeader = FOUR_CHAR_CODE('phdr'), /* QTSPresentationHeaderAtom */
  1657. kQTSAtomType_MediaStream = FOUR_CHAR_CODE('mstr'),
  1658. kQTSAtomType_MediaStreamHeader = FOUR_CHAR_CODE('mshd'), /* QTSMediaStreamHeaderAtom */
  1659. kQTSAtomType_MediaDescriptionText = FOUR_CHAR_CODE('mdes'), /* chars, no length */
  1660. kQTSAtomType_ClipRect = FOUR_CHAR_CODE('clip'), /* QTSClipRectAtom */
  1661. kQTSAtomType_Duration = FOUR_CHAR_CODE('dura'), /* QTSDurationAtom */
  1662. kQTSAtomType_BufferTime = FOUR_CHAR_CODE('bufr') /* QTSBufferTimeAtom */
  1663. };
  1664. struct QTSAtomContainerDataStruct {
  1665. QTAtomContainer container;
  1666. QTAtom parentAtom;
  1667. };
  1668. typedef struct QTSAtomContainerDataStruct QTSAtomContainerDataStruct;
  1669. /* flags for QTSPresentationHeaderAtom */
  1670. enum {
  1671. kQTSPresHeaderTypeIsData = 0x00000100,
  1672. kQTSPresHeaderDataIsHandle = 0x00000200
  1673. };
  1674. struct QTSPresentationHeaderAtom {
  1675. SInt32 versionAndFlags;
  1676. OSType conductorOrDataType;
  1677. OSType dataAtomType; /* where the data really is*/
  1678. };
  1679. typedef struct QTSPresentationHeaderAtom QTSPresentationHeaderAtom;
  1680. struct QTSMediaStreamHeaderAtom {
  1681. SInt32 versionAndFlags;
  1682. OSType mediaTransportType;
  1683. OSType mediaTransportDataAID; /* where the data really is*/
  1684. };
  1685. typedef struct QTSMediaStreamHeaderAtom QTSMediaStreamHeaderAtom;
  1686. struct QTSBufferTimeAtom {
  1687. SInt32 versionAndFlags;
  1688. Fixed bufferTime;
  1689. };
  1690. typedef struct QTSBufferTimeAtom QTSBufferTimeAtom;
  1691. struct QTSDurationAtom {
  1692. SInt32 versionAndFlags;
  1693. TimeScale timeScale;
  1694. TimeValue64 duration;
  1695. };
  1696. typedef struct QTSDurationAtom QTSDurationAtom;
  1697. struct QTSClipRectAtom {
  1698. SInt32 versionAndFlags;
  1699. Rect clipRect;
  1700. };
  1701. typedef struct QTSClipRectAtom QTSClipRectAtom;
  1702. enum {
  1703. kQTSEmptyEditStreamStartTime = -1
  1704. };
  1705. typedef UInt32 QTSStatus;
  1706. enum {
  1707. kQTSNullStatus = 0,
  1708. kQTSUninitializedStatus = 1,
  1709. kQTSConnectingStatus = 2,
  1710. kQTSOpeningConnectionDetailedStatus = 3,
  1711. kQTSMadeConnectionDetailedStatus = 4,
  1712. kQTSNegotiatingStatus = 5,
  1713. kQTSGettingDescriptionDetailedStatus = 6,
  1714. kQTSGotDescriptionDetailedStatus = 7,
  1715. kQTSSentSetupCmdDetailedStatus = 8,
  1716. kQTSReceivedSetupResponseDetailedStatus = 9,
  1717. kQTSSentPlayCmdDetailedStatus = 10,
  1718. kQTSReceivedPlayResponseDetailedStatus = 11,
  1719. kQTSBufferingStatus = 12,
  1720. kQTSPlayingStatus = 13,
  1721. kQTSPausedStatus = 14,
  1722. kQTSAutoConfiguringStatus = 15,
  1723. kQTSDownloadingStatus = 16,
  1724. kQTSBufferingWithTimeStatus = 17,
  1725. kQTSWaitingDisconnectStatus = 100
  1726. };
  1727. /*-----------------------------------------
  1728. QuickTime Preferences Types
  1729. -----------------------------------------*/
  1730. enum {
  1731. kQTSConnectionPrefsType = FOUR_CHAR_CODE('stcm'), /* root atom that all other atoms are contained in*/
  1732. /* kQTSNotUsedForProxyPrefsType = 'nopr', // comma-delimited list of URLs that are never used for proxies*/
  1733. kQTSConnectionMethodPrefsType = FOUR_CHAR_CODE('mthd'), /* connection method (OSType that matches one of the following three)*/
  1734. kQTSDirectConnectPrefsType = FOUR_CHAR_CODE('drct'), /* used if direct connect (QTSDirectConnectPrefsRecord)*/
  1735. /* kQTSRTSPProxyPrefsType = 'rtsp', // used if RTSP Proxy (QTSProxyPrefsRecord)*/
  1736. kQTSSOCKSPrefsType = FOUR_CHAR_CODE('sock') /* used if SOCKS Proxy (QTSProxyPrefsRecord)*/
  1737. };
  1738. enum {
  1739. kQTSDirectConnectHTTPProtocol = FOUR_CHAR_CODE('http'),
  1740. kQTSDirectConnectRTSPProtocol = FOUR_CHAR_CODE('rtsp')
  1741. };
  1742. struct QTSDirectConnectPrefsRecord {
  1743. UInt32 tcpPortID;
  1744. OSType protocol;
  1745. };
  1746. typedef struct QTSDirectConnectPrefsRecord QTSDirectConnectPrefsRecord;
  1747. struct QTSProxyPrefsRecord {
  1748. Str255 serverNameStr;
  1749. UInt32 portID;
  1750. };
  1751. typedef struct QTSProxyPrefsRecord QTSProxyPrefsRecord;
  1752. #define kQTSTransAndProxyPrefsVersNum 2 /* prefs atom format version */
  1753. enum {
  1754. kConnectionActive = (1L << 0),
  1755. kConnectionUseSystemPref = (1L << 1)
  1756. };
  1757. struct QTSTransportPref {
  1758. OSType protocol; /* udp, http, tcp, etc*/
  1759. SInt32 portID; /* port to use for this connection type*/
  1760. UInt32 flags; /* connection flags*/
  1761. UInt32 seed; /* seed value last time this setting was read from system prefs*/
  1762. };
  1763. typedef struct QTSTransportPref QTSTransportPref;
  1764. enum {
  1765. kProxyActive = (1L << 0),
  1766. kProxyUseSystemPref = (1L << 1)
  1767. };
  1768. struct QTSProxyPref {
  1769. UInt32 flags; /* proxy flags*/
  1770. SInt32 portID; /* port to use for this connection type*/
  1771. UInt32 seed; /* seed value last time this setting was read from system prefs*/
  1772. Str255 serverNameStr; /* proxy server url*/
  1773. };
  1774. typedef struct QTSProxyPref QTSProxyPref;
  1775. enum {
  1776. kNoProxyUseSystemPref = (1L << 0)
  1777. };
  1778. struct QTSNoProxyPref {
  1779. UInt32 flags; /* no-proxy flags*/
  1780. UInt32 seed; /* seed value last time this setting was read from system prefs*/
  1781. char urlList[1]; /* NULL terminated, comma delimited list of urls*/
  1782. };
  1783. typedef struct QTSNoProxyPref QTSNoProxyPref;
  1784. enum {
  1785. kQTSInstantOnFlag_Enable = (1L << 0), /* instant on is enabled (read/write)*/
  1786. kQTSInstantOnFlag_Permitted = (1L << 1) /* instant on is possible (read only)*/
  1787. };
  1788. struct QTSInstantOnPref {
  1789. SInt32 flags; /* flags*/
  1790. SInt32 factor; /* 0-100; default is 50*/
  1791. };
  1792. typedef struct QTSInstantOnPref QTSInstantOnPref;
  1793. enum {
  1794. kQTSTransAndProxyAtomType = FOUR_CHAR_CODE('strp'), /* transport/proxy prefs root atom*/
  1795. kQTSConnectionPrefsVersion = FOUR_CHAR_CODE('vers'), /* prefs format version*/
  1796. kQTSTransportPrefsAtomType = FOUR_CHAR_CODE('trns'), /* tranport prefs root atom*/
  1797. kQTSConnectionAtomType = FOUR_CHAR_CODE('conn'), /* connection prefs atom type, one for each transport type*/
  1798. kQTSUDPTransportType = FOUR_CHAR_CODE('udp '), /* udp transport prefs*/
  1799. kQTSHTTPTransportType = FOUR_CHAR_CODE('http'), /* http transport prefs*/
  1800. kQTSTCPTransportType = FOUR_CHAR_CODE('tcp '), /* tcp transport prefs */
  1801. kQTSProxyPrefsAtomType = FOUR_CHAR_CODE('prxy'), /* proxy prefs root atom*/
  1802. kQTSHTTPProxyPrefsType = FOUR_CHAR_CODE('http'), /* http proxy settings*/
  1803. kQTSRTSPProxyPrefsType = FOUR_CHAR_CODE('rtsp'), /* rtsp proxy settings*/
  1804. kQTSSOCKSProxyPrefsType = FOUR_CHAR_CODE('sock'), /* socks proxy settings*/
  1805. kQTSProxyUserInfoPrefsType = FOUR_CHAR_CODE('user'), /* proxy username/password root atom*/
  1806. kQTSDontProxyPrefsAtomType = FOUR_CHAR_CODE('nopr'), /* no-proxy prefs root atom*/
  1807. kQTSDontProxyDataType = FOUR_CHAR_CODE('data'), /* no proxy settings*/
  1808. kQTSInstantOnPrefsAtomType = FOUR_CHAR_CODE('inon') /* instant on prefs*/
  1809. };
  1810. /*
  1811. * QTSPrefsAddProxySetting()
  1812. *
  1813. * Availability:
  1814. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1815. * CarbonLib: in CarbonLib 1.1 and later
  1816. * Mac OS X: in version 10.0 and later
  1817. * Windows: in QTSClient.lib 4.1 and later
  1818. */
  1819. EXTERN_API_C( OSErr )
  1820. QTSPrefsAddProxySetting(
  1821. OSType proxyType,
  1822. SInt32 portID,
  1823. UInt32 flags,
  1824. UInt32 seed,
  1825. Str255 srvrURL);
  1826. /*
  1827. * QTSPrefsFindProxyByType()
  1828. *
  1829. * Availability:
  1830. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1831. * CarbonLib: in CarbonLib 1.1 and later
  1832. * Mac OS X: in version 10.0 and later
  1833. * Windows: in QTSClient.lib 4.1 and later
  1834. */
  1835. EXTERN_API_C( OSErr )
  1836. QTSPrefsFindProxyByType(
  1837. OSType proxyType,
  1838. UInt32 flags,
  1839. UInt32 flagsMask,
  1840. QTSProxyPref ** proxyHndl,
  1841. SInt16 * count);
  1842. /*
  1843. * QTSPrefsAddConnectionSetting()
  1844. *
  1845. * Availability:
  1846. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1847. * CarbonLib: in CarbonLib 1.1 and later
  1848. * Mac OS X: in version 10.0 and later
  1849. * Windows: in QTSClient.lib 4.1 and later
  1850. */
  1851. EXTERN_API_C( OSErr )
  1852. QTSPrefsAddConnectionSetting(
  1853. OSType protocol,
  1854. SInt32 portID,
  1855. UInt32 flags,
  1856. UInt32 seed);
  1857. /*
  1858. * QTSPrefsFindConnectionByType()
  1859. *
  1860. * Availability:
  1861. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1862. * CarbonLib: in CarbonLib 1.1 and later
  1863. * Mac OS X: in version 10.0 and later
  1864. * Windows: in QTSClient.lib 4.1 and later
  1865. */
  1866. EXTERN_API_C( OSErr )
  1867. QTSPrefsFindConnectionByType(
  1868. OSType protocol,
  1869. UInt32 flags,
  1870. UInt32 flagsMask,
  1871. QTSTransportPref ** connectionHndl,
  1872. SInt16 * count);
  1873. /*
  1874. * QTSPrefsGetActiveConnection()
  1875. *
  1876. * Availability:
  1877. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1878. * CarbonLib: in CarbonLib 1.1 and later
  1879. * Mac OS X: in version 10.0 and later
  1880. * Windows: in QTSClient.lib 4.1 and later
  1881. */
  1882. EXTERN_API_C( OSErr )
  1883. QTSPrefsGetActiveConnection(
  1884. OSType protocol,
  1885. QTSTransportPref * connectInfo);
  1886. /*
  1887. * QTSPrefsGetNoProxyURLs()
  1888. *
  1889. * Availability:
  1890. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1891. * CarbonLib: in CarbonLib 1.1 and later
  1892. * Mac OS X: in version 10.0 and later
  1893. * Windows: in QTSClient.lib 4.1 and later
  1894. */
  1895. EXTERN_API_C( OSErr )
  1896. QTSPrefsGetNoProxyURLs(QTSNoProxyPref ** noProxyHndl);
  1897. /*
  1898. * QTSPrefsSetNoProxyURLs()
  1899. *
  1900. * Availability:
  1901. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1902. * CarbonLib: in CarbonLib 1.1 and later
  1903. * Mac OS X: in version 10.0 and later
  1904. * Windows: in QTSClient.lib 4.1 and later
  1905. */
  1906. EXTERN_API_C( OSErr )
  1907. QTSPrefsSetNoProxyURLs(
  1908. char * urls,
  1909. UInt32 flags,
  1910. UInt32 seed);
  1911. /*
  1912. * QTSPrefsAddProxyUserInfo()
  1913. *
  1914. * Availability:
  1915. * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
  1916. * CarbonLib: in CarbonLib 1.6 and later
  1917. * Mac OS X: in version 10.1 and later
  1918. * Windows: in QTSClient.lib 5.0.1 and later
  1919. */
  1920. EXTERN_API_C( OSErr )
  1921. QTSPrefsAddProxyUserInfo(
  1922. OSType proxyType,
  1923. SInt32 flags,
  1924. SInt32 flagsMask,
  1925. StringPtr username,
  1926. StringPtr password);
  1927. /*
  1928. * QTSPrefsFindProxyUserInfoByType()
  1929. *
  1930. * Availability:
  1931. * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
  1932. * CarbonLib: in CarbonLib 1.6 and later
  1933. * Mac OS X: in version 10.1 and later
  1934. * Windows: in QTSClient.lib 5.0.1 and later
  1935. */
  1936. EXTERN_API_C( OSErr )
  1937. QTSPrefsFindProxyUserInfoByType(
  1938. OSType proxyType,
  1939. SInt32 flags,
  1940. SInt32 flagsMask,
  1941. StringPtr username,
  1942. StringPtr password);
  1943. /*
  1944. * QTSPrefsGetInstantOnSettings()
  1945. *
  1946. * Availability:
  1947. * Non-Carbon CFM: in QTStreamLib 6.0 and later
  1948. * CarbonLib: in CarbonLib 1.6 and later
  1949. * Mac OS X: in version 10.2 and later
  1950. * Windows: in QTSClient.lib 6.0 and later
  1951. */
  1952. EXTERN_API_C( OSErr )
  1953. QTSPrefsGetInstantOnSettings(
  1954. QTSInstantOnPref * outPref,
  1955. SInt32 inFlags);
  1956. /*
  1957. * QTSPrefsSetInstantOnSettings()
  1958. *
  1959. * Availability:
  1960. * Non-Carbon CFM: in QTStreamLib 6.0 and later
  1961. * CarbonLib: in CarbonLib 1.6 and later
  1962. * Mac OS X: in version 10.2 and later
  1963. * Windows: in QTSClient.lib 6.0 and later
  1964. */
  1965. EXTERN_API_C( OSErr )
  1966. QTSPrefsSetInstantOnSettings(
  1967. QTSInstantOnPref * inPref,
  1968. SInt32 inFlags);
  1969. /*============================================================================
  1970. Memory Management Services
  1971. ============================================================================*/
  1972. /*
  1973. These routines allocate normal pointers and handles,
  1974. but do the correct checking, etc.
  1975. Dispose using the normal DisposePtr and DisposeHandle
  1976. Call these routines for one time memory allocations.
  1977. You do not need to set any hints to use these calls.
  1978. */
  1979. /*
  1980. * QTSNewPtr()
  1981. *
  1982. * Availability:
  1983. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1984. * CarbonLib: in CarbonLib 1.1 and later
  1985. * Mac OS X: in version 10.0 and later
  1986. * Windows: in QTSClient.lib 4.0 and later
  1987. */
  1988. EXTERN_API_C( Ptr )
  1989. QTSNewPtr(
  1990. UInt32 inByteCount,
  1991. SInt32 inFlags,
  1992. SInt32 * outFlags);
  1993. /*
  1994. * QTSNewHandle()
  1995. *
  1996. * Availability:
  1997. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1998. * CarbonLib: in CarbonLib 1.1 and later
  1999. * Mac OS X: in version 10.0 and later
  2000. * Windows: in QTSClient.lib 4.0 and later
  2001. */
  2002. EXTERN_API_C( Handle )
  2003. QTSNewHandle(
  2004. UInt32 inByteCount,
  2005. SInt32 inFlags,
  2006. SInt32 * outFlags);
  2007. #define QTSNewPtrClear(_s) QTSNewPtr((_s), kQTSMemAllocClearMem, NULL)
  2008. #define QTSNewHandleClear(_s) QTSNewHandle((_s), kQTSMemAllocClearMem, NULL)
  2009. /* flags in*/
  2010. enum {
  2011. kQTSMemAllocClearMem = 0x00000001,
  2012. kQTSMemAllocDontUseTempMem = 0x00000002,
  2013. kQTSMemAllocTryTempMemFirst = 0x00000004,
  2014. kQTSMemAllocDontUseSystemMem = 0x00000008,
  2015. kQTSMemAllocTrySystemMemFirst = 0x00000010,
  2016. kQTSMemAllocHoldMemory = 0x00001000,
  2017. kQTSMemAllocIsInterruptTime = 0x01010000 /* currently not supported for alloc*/
  2018. };
  2019. /* flags out*/
  2020. enum {
  2021. kQTSMemAllocAllocatedInTempMem = 0x00000001,
  2022. kQTSMemAllocAllocatedInSystemMem = 0x00000002
  2023. };
  2024. typedef struct OpaqueQTSMemPtr* QTSMemPtr;
  2025. /*
  2026. These routines are for buffers that will be recirculated
  2027. you must use QTReleaseMemPtr instead of DisposePtr
  2028. QTSReleaseMemPtr can be used at interrupt time
  2029. but QTSAllocMemPtr currently cannot
  2030. */
  2031. /*
  2032. * QTSAllocMemPtr()
  2033. *
  2034. * Availability:
  2035. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  2036. * CarbonLib: in CarbonLib 1.1 and later
  2037. * Mac OS X: in version 10.0 and later
  2038. * Windows: in QTSClient.lib 4.0 and later
  2039. */
  2040. EXTERN_API_C( QTSMemPtr )
  2041. QTSAllocMemPtr(
  2042. UInt32 inByteCount,
  2043. SInt32 inFlags);
  2044. /*
  2045. * QTSReleaseMemPtr()
  2046. *
  2047. * Availability:
  2048. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  2049. * CarbonLib: in CarbonLib 1.1 and later
  2050. * Mac OS X: in version 10.0 and later
  2051. * Windows: in QTSClient.lib 4.0 and later
  2052. */
  2053. EXTERN_API_C( void )
  2054. QTSReleaseMemPtr(
  2055. QTSMemPtr inMemPtr,
  2056. SInt32 inFlags);
  2057. /*============================================================================
  2058. Buffer Management Services
  2059. ============================================================================*/
  2060. enum {
  2061. kQTSStreamBufferVersion1 = 1
  2062. };
  2063. struct QTSStreamBuffer {
  2064. struct QTSStreamBuffer * reserved1;
  2065. struct QTSStreamBuffer * reserved2;
  2066. struct QTSStreamBuffer * next; /* next message block in a message */
  2067. unsigned char * rptr; /* first byte with real data in the DataBuffer */
  2068. unsigned char * wptr; /* last+1 byte with real data in the DataBuffer */
  2069. SInt32 version;
  2070. UInt32 metadata[4]; /* usage defined by message sender */
  2071. SInt32 flags; /* reserved */
  2072. long reserved3;
  2073. long reserved4;
  2074. long reserved5;
  2075. UInt32 moreMeta[8];
  2076. };
  2077. typedef struct QTSStreamBuffer QTSStreamBuffer;
  2078. /* flags for QTSDuplicateMessage*/
  2079. enum {
  2080. kQTSDuplicateBufferFlag_CopyData = 0x00000001,
  2081. kQTSDuplicateBufferFlag_FlattenMessage = 0x00000002
  2082. };
  2083. /*
  2084. * QTSNewStreamBuffer()
  2085. *
  2086. * Availability:
  2087. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  2088. * CarbonLib: in CarbonLib 1.3 and later
  2089. * Mac OS X: in version 10.0 and later
  2090. * Windows: in QTSClient.lib 5.0 and later
  2091. */
  2092. EXTERN_API_C( OSErr )
  2093. QTSNewStreamBuffer(
  2094. UInt32 inDataSize,
  2095. SInt32 inFlags,
  2096. QTSStreamBuffer ** outStreamBuffer);
  2097. /*
  2098. * QTSFreeMessage()
  2099. *
  2100. * Availability:
  2101. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  2102. * CarbonLib: in CarbonLib 1.1 and later
  2103. * Mac OS X: in version 10.0 and later
  2104. * Windows: in QTSClient.lib 4.0 and later
  2105. */
  2106. EXTERN_API_C( void )
  2107. QTSFreeMessage(QTSStreamBuffer * inMessage);
  2108. /*
  2109. kQTSDuplicateBufferFlag_CopyData - forces a copy of the data itself
  2110. kQTSCopyBufferFlag_FlattenMessage - copies the data if it needs to be flattened
  2111. QTSDuplicateMessage never frees the old message
  2112. */
  2113. /*
  2114. * QTSDuplicateMessage()
  2115. *
  2116. * Availability:
  2117. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  2118. * CarbonLib: in CarbonLib 1.3 and later
  2119. * Mac OS X: in version 10.0 and later
  2120. * Windows: in QTSClient.lib 5.0 and later
  2121. */
  2122. EXTERN_API_C( OSErr )
  2123. QTSDuplicateMessage(
  2124. QTSStreamBuffer * inMessage,
  2125. SInt32 inFlags,
  2126. QTSStreamBuffer ** outDuplicatedMessage);
  2127. /*
  2128. * QTSMessageLength()
  2129. *
  2130. * Availability:
  2131. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  2132. * CarbonLib: in CarbonLib 1.1 and later
  2133. * Mac OS X: in version 10.0 and later
  2134. * Windows: in QTSClient.lib 4.0 and later
  2135. */
  2136. EXTERN_API_C( UInt32 )
  2137. QTSMessageLength(QTSStreamBuffer * inMessage);
  2138. /*
  2139. * QTSStreamBufferDataInfo()
  2140. *
  2141. * Availability:
  2142. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  2143. * CarbonLib: in CarbonLib 1.3 and later
  2144. * Mac OS X: in version 10.0 and later
  2145. * Windows: in QTSClient.lib 5.0 and later
  2146. */
  2147. EXTERN_API_C( void )
  2148. QTSStreamBufferDataInfo(
  2149. QTSStreamBuffer * inStreamBuffer,
  2150. unsigned char ** outDataStart,
  2151. UInt32 * outDataMaxLength);
  2152. /* ---- old calls (don't use these)*/
  2153. /*
  2154. * QTSAllocBuffer()
  2155. *
  2156. * Availability:
  2157. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  2158. * CarbonLib: in CarbonLib 1.1 and later
  2159. * Mac OS X: in version 10.0 and later
  2160. * Windows: in QTSClient.lib 4.0 and later
  2161. */
  2162. EXTERN_API_C( QTSStreamBuffer * )
  2163. QTSAllocBuffer(SInt32 inSize);
  2164. /*
  2165. * QTSDupMessage()
  2166. *
  2167. * Availability:
  2168. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  2169. * CarbonLib: in CarbonLib 1.1 and later
  2170. * Mac OS X: in version 10.0 and later
  2171. * Windows: in QTSClient.lib 4.0 and later
  2172. */
  2173. EXTERN_API_C( QTSStreamBuffer * )
  2174. QTSDupMessage(QTSStreamBuffer * inMessage);
  2175. /*
  2176. * QTSCopyMessage()
  2177. *
  2178. * Availability:
  2179. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  2180. * CarbonLib: in CarbonLib 1.1 and later
  2181. * Mac OS X: in version 10.0 and later
  2182. * Windows: in QTSClient.lib 4.0 and later
  2183. */
  2184. EXTERN_API_C( QTSStreamBuffer * )
  2185. QTSCopyMessage(QTSStreamBuffer * inMessage);
  2186. /*
  2187. * QTSFlattenMessage()
  2188. *
  2189. * Availability:
  2190. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  2191. * CarbonLib: in CarbonLib 1.1 and later
  2192. * Mac OS X: in version 10.0 and later
  2193. * Windows: in QTSClient.lib 4.0 and later
  2194. */
  2195. EXTERN_API_C( QTSStreamBuffer * )
  2196. QTSFlattenMessage(QTSStreamBuffer * inMessage);
  2197. /*============================================================================
  2198. Misc
  2199. ============================================================================*/
  2200. /*
  2201. * QTSGetErrorString()
  2202. *
  2203. * Availability:
  2204. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  2205. * CarbonLib: in CarbonLib 1.1 and later
  2206. * Mac OS X: in version 10.0 and later
  2207. * Windows: in QTSClient.lib 4.0 and later
  2208. */
  2209. EXTERN_API_C( Boolean )
  2210. QTSGetErrorString(
  2211. SInt32 inErrorCode,
  2212. UInt32 inMaxErrorStringLength,
  2213. char * outErrorString,
  2214. SInt32 inFlags);
  2215. /*
  2216. * QTSInitializeMediaParams()
  2217. *
  2218. * Availability:
  2219. * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
  2220. * CarbonLib: in CarbonLib 1.6 and later
  2221. * Mac OS X: in version 10.1 and later
  2222. * Windows: in QTSClient.lib 5.0.1 and later
  2223. */
  2224. EXTERN_API_C( OSErr )
  2225. QTSInitializeMediaParams(QTSMediaParams * inMediaParams);
  2226. /* UPP call backs */
  2227. /*
  2228. * NewQTSNotificationUPP()
  2229. *
  2230. * Availability:
  2231. * Non-Carbon CFM: available as macro/inline
  2232. * CarbonLib: in CarbonLib 1.3 and later
  2233. * Mac OS X: in version 10.0 and later
  2234. */
  2235. EXTERN_API_C( QTSNotificationUPP )
  2236. NewQTSNotificationUPP(QTSNotificationProcPtr userRoutine);
  2237. #if !OPAQUE_UPP_TYPES
  2238. enum { uppQTSNotificationProcInfo = 0x00003FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2239. #ifdef __cplusplus
  2240. inline DEFINE_API_C(QTSNotificationUPP) NewQTSNotificationUPP(QTSNotificationProcPtr userRoutine) { return (QTSNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSNotificationProcInfo, GetCurrentArchitecture()); }
  2241. #else
  2242. #define NewQTSNotificationUPP(userRoutine) (QTSNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSNotificationProcInfo, GetCurrentArchitecture())
  2243. #endif
  2244. #endif
  2245. /*
  2246. * NewQTSPanelFilterUPP()
  2247. *
  2248. * Availability:
  2249. * Non-Carbon CFM: available as macro/inline
  2250. * CarbonLib: in CarbonLib 1.6 and later
  2251. * Mac OS X: in version 10.1 and later
  2252. */
  2253. EXTERN_API_C( QTSPanelFilterUPP )
  2254. NewQTSPanelFilterUPP(QTSPanelFilterProcPtr userRoutine);
  2255. #if !OPAQUE_UPP_TYPES
  2256. enum { uppQTSPanelFilterProcInfo = 0x000003D0 }; /* pascal 1_byte Func(4_bytes, 4_bytes) */
  2257. #ifdef __cplusplus
  2258. inline DEFINE_API_C(QTSPanelFilterUPP) NewQTSPanelFilterUPP(QTSPanelFilterProcPtr userRoutine) { return (QTSPanelFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSPanelFilterProcInfo, GetCurrentArchitecture()); }
  2259. #else
  2260. #define NewQTSPanelFilterUPP(userRoutine) (QTSPanelFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSPanelFilterProcInfo, GetCurrentArchitecture())
  2261. #endif
  2262. #endif
  2263. /*
  2264. * NewQTSModalFilterUPP()
  2265. *
  2266. * Availability:
  2267. * Non-Carbon CFM: available as macro/inline
  2268. * CarbonLib: in CarbonLib 1.3 and later
  2269. * Mac OS X: in version 10.0 and later
  2270. */
  2271. EXTERN_API_C( QTSModalFilterUPP )
  2272. NewQTSModalFilterUPP(QTSModalFilterProcPtr userRoutine);
  2273. #if !OPAQUE_UPP_TYPES
  2274. enum { uppQTSModalFilterProcInfo = 0x00003FD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2275. #ifdef __cplusplus
  2276. inline DEFINE_API_C(QTSModalFilterUPP) NewQTSModalFilterUPP(QTSModalFilterProcPtr userRoutine) { return (QTSModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSModalFilterProcInfo, GetCurrentArchitecture()); }
  2277. #else
  2278. #define NewQTSModalFilterUPP(userRoutine) (QTSModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSModalFilterProcInfo, GetCurrentArchitecture())
  2279. #endif
  2280. #endif
  2281. /*
  2282. * DisposeQTSNotificationUPP()
  2283. *
  2284. * Availability:
  2285. * Non-Carbon CFM: available as macro/inline
  2286. * CarbonLib: in CarbonLib 1.3 and later
  2287. * Mac OS X: in version 10.0 and later
  2288. */
  2289. EXTERN_API_C( void )
  2290. DisposeQTSNotificationUPP(QTSNotificationUPP userUPP);
  2291. #if !OPAQUE_UPP_TYPES
  2292. #ifdef __cplusplus
  2293. inline DEFINE_API_C(void) DisposeQTSNotificationUPP(QTSNotificationUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  2294. #else
  2295. #define DisposeQTSNotificationUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  2296. #endif
  2297. #endif
  2298. /*
  2299. * DisposeQTSPanelFilterUPP()
  2300. *
  2301. * Availability:
  2302. * Non-Carbon CFM: available as macro/inline
  2303. * CarbonLib: in CarbonLib 1.6 and later
  2304. * Mac OS X: in version 10.1 and later
  2305. */
  2306. EXTERN_API_C( void )
  2307. DisposeQTSPanelFilterUPP(QTSPanelFilterUPP userUPP);
  2308. #if !OPAQUE_UPP_TYPES
  2309. #ifdef __cplusplus
  2310. inline DEFINE_API_C(void) DisposeQTSPanelFilterUPP(QTSPanelFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  2311. #else
  2312. #define DisposeQTSPanelFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  2313. #endif
  2314. #endif
  2315. /*
  2316. * DisposeQTSModalFilterUPP()
  2317. *
  2318. * Availability:
  2319. * Non-Carbon CFM: available as macro/inline
  2320. * CarbonLib: in CarbonLib 1.3 and later
  2321. * Mac OS X: in version 10.0 and later
  2322. */
  2323. EXTERN_API_C( void )
  2324. DisposeQTSModalFilterUPP(QTSModalFilterUPP userUPP);
  2325. #if !OPAQUE_UPP_TYPES
  2326. #ifdef __cplusplus
  2327. inline DEFINE_API_C(void) DisposeQTSModalFilterUPP(QTSModalFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  2328. #else
  2329. #define DisposeQTSModalFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  2330. #endif
  2331. #endif
  2332. /*
  2333. * InvokeQTSNotificationUPP()
  2334. *
  2335. * Availability:
  2336. * Non-Carbon CFM: available as macro/inline
  2337. * CarbonLib: in CarbonLib 1.3 and later
  2338. * Mac OS X: in version 10.0 and later
  2339. */
  2340. EXTERN_API_C( ComponentResult )
  2341. InvokeQTSNotificationUPP(
  2342. ComponentResult inErr,
  2343. OSType inNotificationType,
  2344. void * inNotificationParams,
  2345. void * inRefCon,
  2346. QTSNotificationUPP userUPP);
  2347. #if !OPAQUE_UPP_TYPES
  2348. #ifdef __cplusplus
  2349. 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); }
  2350. #else
  2351. #define InvokeQTSNotificationUPP(inErr, inNotificationType, inNotificationParams, inRefCon, userUPP) (ComponentResult)CALL_FOUR_PARAMETER_UPP((userUPP), uppQTSNotificationProcInfo, (inErr), (inNotificationType), (inNotificationParams), (inRefCon))
  2352. #endif
  2353. #endif
  2354. /*
  2355. * InvokeQTSPanelFilterUPP()
  2356. *
  2357. * Availability:
  2358. * Non-Carbon CFM: available as macro/inline
  2359. * CarbonLib: in CarbonLib 1.6 and later
  2360. * Mac OS X: in version 10.1 and later
  2361. */
  2362. EXTERN_API_C( Boolean )
  2363. InvokeQTSPanelFilterUPP(
  2364. QTSPanelFilterParams * inParams,
  2365. void * inRefCon,
  2366. QTSPanelFilterUPP userUPP);
  2367. #if !OPAQUE_UPP_TYPES
  2368. #ifdef __cplusplus
  2369. inline DEFINE_API_C(Boolean) InvokeQTSPanelFilterUPP(QTSPanelFilterParams * inParams, void * inRefCon, QTSPanelFilterUPP userUPP) { return (Boolean)CALL_TWO_PARAMETER_UPP(userUPP, uppQTSPanelFilterProcInfo, inParams, inRefCon); }
  2370. #else
  2371. #define InvokeQTSPanelFilterUPP(inParams, inRefCon, userUPP) (Boolean)CALL_TWO_PARAMETER_UPP((userUPP), uppQTSPanelFilterProcInfo, (inParams), (inRefCon))
  2372. #endif
  2373. #endif
  2374. /*
  2375. * InvokeQTSModalFilterUPP()
  2376. *
  2377. * Availability:
  2378. * Non-Carbon CFM: available as macro/inline
  2379. * CarbonLib: in CarbonLib 1.3 and later
  2380. * Mac OS X: in version 10.0 and later
  2381. */
  2382. EXTERN_API_C( Boolean )
  2383. InvokeQTSModalFilterUPP(
  2384. DialogPtr inDialog,
  2385. const EventRecord * inEvent,
  2386. SInt16 * ioItemHit,
  2387. void * inRefCon,
  2388. QTSModalFilterUPP userUPP);
  2389. #if !OPAQUE_UPP_TYPES
  2390. #ifdef __cplusplus
  2391. 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); }
  2392. #else
  2393. #define InvokeQTSModalFilterUPP(inDialog, inEvent, ioItemHit, inRefCon, userUPP) (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppQTSModalFilterProcInfo, (inDialog), (inEvent), (ioItemHit), (inRefCon))
  2394. #endif
  2395. #endif
  2396. #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
  2397. /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
  2398. #define NewQTSNotificationProc(userRoutine) NewQTSNotificationUPP(userRoutine)
  2399. #define NewQTSPanelFilterProc(userRoutine) NewQTSPanelFilterUPP(userRoutine)
  2400. #define NewQTSModalFilterProc(userRoutine) NewQTSModalFilterUPP(userRoutine)
  2401. #define CallQTSNotificationProc(userRoutine, inErr, inNotificationType, inNotificationParams, inRefCon) InvokeQTSNotificationUPP(inErr, inNotificationType, inNotificationParams, inRefCon, userRoutine)
  2402. #define CallQTSPanelFilterProc(userRoutine, inParams, inRefCon) InvokeQTSPanelFilterUPP(inParams, inRefCon, userRoutine)
  2403. #define CallQTSModalFilterProc(userRoutine, inDialog, inEvent, ioItemHit, inRefCon) InvokeQTSModalFilterUPP(inDialog, inEvent, ioItemHit, inRefCon, userRoutine)
  2404. #endif /* CALL_NOT_IN_CARBON */
  2405. #endif // !__LP64__
  2406. #if PRAGMA_STRUCT_ALIGN
  2407. #pragma options align=reset
  2408. #elif PRAGMA_STRUCT_PACKPUSH
  2409. #pragma pack(pop)
  2410. #elif PRAGMA_STRUCT_PACK
  2411. #pragma pack()
  2412. #endif
  2413. #ifdef PRAGMA_IMPORT_OFF
  2414. #pragma import off
  2415. #elif PRAGMA_IMPORT
  2416. #pragma import reset
  2417. #endif
  2418. #ifdef __cplusplus
  2419. }
  2420. #endif
  2421. #endif /* __QUICKTIMESTREAMING__ */