QuickTimeStreaming.pas 77 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226
  1. {
  2. File: QuickTimeStreaming.p
  3. Contains: QuickTime Interfaces.
  4. Version: Technology: QuickTime 6.0
  5. Release: Universal Interfaces 3.4.2
  6. Copyright: © 1990-2002 by Apple Computer, Inc., all rights reserved
  7. Bugs?: For bug reports, consult the following page on
  8. the World Wide Web:
  9. http://www.freepascal.org/bugs.html
  10. }
  11. {
  12. Modified for use with Free Pascal
  13. Version 200
  14. Please report any bugs to <[email protected]>
  15. }
  16. {$mode macpas}
  17. {$packenum 1}
  18. {$macro on}
  19. {$inline on}
  20. {$CALLING MWPASCAL}
  21. unit QuickTimeStreaming;
  22. interface
  23. {$setc UNIVERSAL_INTERFACES_VERSION := $0342}
  24. {$setc GAP_INTERFACES_VERSION := $0200}
  25. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  26. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  27. {$endc}
  28. {$ifc defined CPUPOWERPC and defined CPUI386}
  29. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  30. {$endc}
  31. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  32. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  33. {$endc}
  34. {$ifc not defined __ppc__ and defined CPUPOWERPC}
  35. {$setc __ppc__ := 1}
  36. {$elsec}
  37. {$setc __ppc__ := 0}
  38. {$endc}
  39. {$ifc not defined __i386__ and defined CPUI386}
  40. {$setc __i386__ := 1}
  41. {$elsec}
  42. {$setc __i386__ := 0}
  43. {$endc}
  44. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  45. {$error Conflicting definitions for __ppc__ and __i386__}
  46. {$endc}
  47. {$ifc defined __ppc__ and __ppc__}
  48. {$setc TARGET_CPU_PPC := TRUE}
  49. {$setc TARGET_CPU_X86 := FALSE}
  50. {$elifc defined __i386__ and __i386__}
  51. {$setc TARGET_CPU_PPC := FALSE}
  52. {$setc TARGET_CPU_X86 := TRUE}
  53. {$elsec}
  54. {$error Neither __ppc__ nor __i386__ is defined.}
  55. {$endc}
  56. {$setc TARGET_CPU_PPC_64 := FALSE}
  57. {$ifc defined FPC_BIG_ENDIAN}
  58. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  59. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  60. {$elifc defined FPC_LITTLE_ENDIAN}
  61. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  62. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  63. {$elsec}
  64. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  65. {$endc}
  66. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  67. {$setc CALL_NOT_IN_CARBON := FALSE}
  68. {$setc OLDROUTINENAMES := FALSE}
  69. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  70. {$setc OPAQUE_UPP_TYPES := TRUE}
  71. {$setc OTCARBONAPPLICATION := TRUE}
  72. {$setc OTKERNEL := FALSE}
  73. {$setc PM_USE_SESSION_APIS := TRUE}
  74. {$setc TARGET_API_MAC_CARBON := TRUE}
  75. {$setc TARGET_API_MAC_OS8 := FALSE}
  76. {$setc TARGET_API_MAC_OSX := TRUE}
  77. {$setc TARGET_CARBON := TRUE}
  78. {$setc TARGET_CPU_68K := FALSE}
  79. {$setc TARGET_CPU_MIPS := FALSE}
  80. {$setc TARGET_CPU_SPARC := FALSE}
  81. {$setc TARGET_OS_MAC := TRUE}
  82. {$setc TARGET_OS_UNIX := FALSE}
  83. {$setc TARGET_OS_WIN32 := FALSE}
  84. {$setc TARGET_RT_MAC_68881 := FALSE}
  85. {$setc TARGET_RT_MAC_CFM := FALSE}
  86. {$setc TARGET_RT_MAC_MACHO := TRUE}
  87. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  88. {$setc TYPE_BOOL := FALSE}
  89. {$setc TYPE_EXTENDED := FALSE}
  90. {$setc TYPE_LONGLONG := TRUE}
  91. uses MacTypes,Files,Events,ImageCompression,Quickdraw,Components,MacErrors,Movies,QuickTimeComponents;
  92. {$ALIGN MAC68K}
  93. const
  94. kQTSInfiniteDuration = $7FFFFFFF;
  95. kQTSUnknownDuration = $00000000;
  96. kQTSNormalForwardRate = $00010000;
  97. kQTSStoppedRate = $00000000;
  98. type
  99. QTSPresentationRecordPtr = ^QTSPresentationRecord;
  100. QTSPresentationRecord = record
  101. data: array [0..0] of SInt32;
  102. end;
  103. QTSPresentation = ^QTSPresentationRecord;
  104. QTSStreamRecordPtr = ^QTSStreamRecord;
  105. QTSStreamRecord = record
  106. data: array [0..0] of SInt32;
  107. end;
  108. QTSStream = ^QTSStreamRecord;
  109. QTSEditEntryPtr = ^QTSEditEntry;
  110. QTSEditEntry = record
  111. presentationDuration: TimeValue64;
  112. streamStartTime: TimeValue64;
  113. streamRate: Fixed;
  114. end;
  115. QTSEditListPtr = ^QTSEditList;
  116. QTSEditList = record
  117. numEdits: SInt32;
  118. edits: array [0..0] of QTSEditEntry;
  119. end;
  120. QTSEditListHandle = ^QTSEditListPtr;
  121. {$ifc TYPED_FUNCTION_POINTERS}
  122. QTSNotificationProcPtr = function(inErr: ComponentResult; inNotificationType: OSType; inNotificationParams: UnivPtr; inRefCon: UnivPtr): ComponentResult;
  123. {$elsec}
  124. QTSNotificationProcPtr = ProcPtr;
  125. {$endc}
  126. {$ifc OPAQUE_UPP_TYPES}
  127. QTSNotificationUPP = ^SInt32; { an opaque UPP }
  128. {$elsec}
  129. QTSNotificationUPP = UniversalProcPtr;
  130. {$endc}
  131. { -----------------------------------------
  132. Get / Set Info
  133. ----------------------------------------- }
  134. const
  135. kQTSGetURLLink = $67756C6C (* 'gull' *); { QTSGetURLLinkRecord* }
  136. { get and set }
  137. kQTSTargetBufferDurationInfo = $62756672 (* 'bufr' *); { Fixed* in seconds; expected, not actual }
  138. kQTSDurationInfo = $64757261 (* 'dura' *); { QTSDurationAtom* }
  139. kQTSSoundLevelMeteringEnabledInfo = $6D74726E (* 'mtrn' *); { Boolean* }
  140. kQTSSoundLevelMeterInfo = $6C65766D (* 'levm' *); { LevelMeterInfoPtr }
  141. kQTSSourceTrackIDInfo = $6F746964 (* 'otid' *); { UInt32* }
  142. kQTSSourceLayerInfo = $6F6C7972 (* 'olyr' *); { UInt16* }
  143. kQTSSourceLanguageInfo = $6F6C6E67 (* 'olng' *); { UInt16* }
  144. kQTSSourceTrackFlagsInfo = $6F74666C (* 'otfl' *); { SInt32* }
  145. kQTSSourceDimensionsInfo = $6F64696D (* 'odim' *); { QTSDimensionParams* }
  146. kQTSSourceVolumesInfo = $6F766F6C (* 'ovol' *); { QTSVolumesParams* }
  147. kQTSSourceMatrixInfo = $6F6D6174 (* 'omat' *); { MatrixRecord* }
  148. kQTSSourceClipRectInfo = $6F636C70 (* 'oclp' *); { Rect* }
  149. kQTSSourceGraphicsModeInfo = $6F67726D (* 'ogrm' *); { QTSGraphicsModeParams* }
  150. kQTSSourceScaleInfo = $6F73636C (* 'oscl' *); { Point* }
  151. kQTSSourceBoundingRectInfo = $6F726374 (* 'orct' *); { Rect* }
  152. kQTSSourceUserDataInfo = $6F756474 (* 'oudt' *); { UserData }
  153. kQTSSourceInputMapInfo = $6F696D70 (* 'oimp' *); { QTAtomContainer }
  154. kQTSInfo_DataProc = $64617470 (* 'datp' *); { QTSDataProcParams* }
  155. kQTSInfo_SendDataExtras = $64657874 (* 'dext' *); { QTSSendDataExtrasParams* }
  156. kQTSInfo_HintTrackID = $68746964 (* 'htid' *); { long* }
  157. kQTSInfo_URL = $75726C20 (* 'url ' *); { Handle*, cstring in handle }
  158. kQTSInfo_Authentication = $61757570 (* 'auup' *); { QTSAuthenticationParams }
  159. kQTSInfo_MediaPacketizer = $726D706B (* 'rmpk' *); { ComponentInstance }
  160. { get only }
  161. kQTSStatisticsInfo = $73746174 (* 'stat' *); { QTSStatisticsParams* }
  162. kQTSMinStatusDimensionsInfo = $6D737464 (* 'mstd' *); { QTSDimensionParams* }
  163. kQTSNormalStatusDimensionsInfo = $6E737464 (* 'nstd' *); { QTSDimensionParams* }
  164. kQTSTotalDataRateInfo = $64727474 (* 'drtt' *); { UInt32*, add to what's there }
  165. kQTSTotalDataRateInInfo = $64727469 (* 'drti' *); { UInt32*, add to what's there }
  166. kQTSTotalDataRateOutInfo = $6472746F (* 'drto' *); { UInt32*, add to what's there }
  167. kQTSLostPercentInfo = $6C706374 (* 'lpct' *); { QTSLostPercentParams*, add to what's there }
  168. kQTSNumViewersInfo = $6E766977 (* 'nviw' *); { UInt32* }
  169. kQTSMediaTypeInfo = $6D747970 (* 'mtyp' *); { OSType* }
  170. kQTSNameInfo = $6E616D65 (* 'name' *); { QTSNameParams* }
  171. kQTSCanHandleSendDataType = $63687364 (* 'chsd' *); { QTSCanHandleSendDataTypeParams* }
  172. kQTSAnnotationsInfo = $6D657461 (* 'meta' *); { QTAtomContainer }
  173. kQTSRemainingBufferTimeInfo = $62746D73 (* 'btms' *); { UInt32* remaining buffer time before playback, in microseconds }
  174. kQTSInfo_SettingsText = $73747478 (* 'sttx' *); { QTSSettingsTextParams* }
  175. kQTSInfo_AverageFrameRate = $66707320 (* 'fps ' *); { UnsignedFixed* }
  176. type
  177. QTSAuthenticationParamsPtr = ^QTSAuthenticationParams;
  178. QTSAuthenticationParams = record
  179. flags: SInt32;
  180. userID: ConstCStringPtr; { caller disposes of pointer }
  181. password: ConstCStringPtr; { caller disposes of pointer }
  182. end;
  183. const
  184. kQTSTargetBufferDurationTimeScale = 1000;
  185. type
  186. QTSPanelFilterParamsPtr = ^QTSPanelFilterParams;
  187. QTSPanelFilterParams = record
  188. version: SInt32;
  189. inStream: QTSStream;
  190. inPanelType: OSType;
  191. inPanelSubType: OSType;
  192. details: QTAtomSpec;
  193. end;
  194. { return true to keep this panel }
  195. {$ifc TYPED_FUNCTION_POINTERS}
  196. QTSPanelFilterProcPtr = function(var inParams: QTSPanelFilterParams; inRefCon: UnivPtr): boolean;
  197. {$elsec}
  198. QTSPanelFilterProcPtr = ProcPtr;
  199. {$endc}
  200. {$ifc OPAQUE_UPP_TYPES}
  201. QTSPanelFilterUPP = ^SInt32; { an opaque UPP }
  202. {$elsec}
  203. QTSPanelFilterUPP = UniversalProcPtr;
  204. {$endc}
  205. const
  206. kQTSSettingsTextSummary = $73657431 (* 'set1' *);
  207. kQTSSettingsTextDetails = $73657464 (* 'setd' *);
  208. type
  209. QTSSettingsTextParamsPtr = ^QTSSettingsTextParams;
  210. QTSSettingsTextParams = record
  211. flags: SInt32; { None yet defined }
  212. inSettingsSelector: OSType; { which kind of setting you want from enum above }
  213. outSettingsAsText: Handle; { QTS allocates; Caller disposes }
  214. inPanelFilterProc: QTSPanelFilterUPP; { To get a subset filter with this }
  215. inPanelFilterProcRefCon: Ptr;
  216. end;
  217. QTSCanHandleSendDataTypeParamsPtr = ^QTSCanHandleSendDataTypeParams;
  218. QTSCanHandleSendDataTypeParams = record
  219. modifierTypeOrInputID: SInt32;
  220. isModifierType: boolean;
  221. returnedCanHandleSendDataType: boolean; { callee sets to true if it can handle it }
  222. end;
  223. QTSNameParamsPtr = ^QTSNameParams;
  224. QTSNameParams = record
  225. maxNameLength: SInt32;
  226. requestedLanguage: SInt32;
  227. returnedActualLanguage: SInt32;
  228. returnedName: Ptr; { pascal string; caller supplies }
  229. end;
  230. QTSLostPercentParamsPtr = ^QTSLostPercentParams;
  231. QTSLostPercentParams = record
  232. receivedPkts: UInt32;
  233. lostPkts: UInt32;
  234. percent: Fixed;
  235. end;
  236. QTSDimensionParamsPtr = ^QTSDimensionParams;
  237. QTSDimensionParams = record
  238. width: Fixed;
  239. height: Fixed;
  240. end;
  241. QTSVolumesParamsPtr = ^QTSVolumesParams;
  242. QTSVolumesParams = record
  243. leftVolume: SInt16;
  244. rightVolume: SInt16;
  245. end;
  246. QTSGraphicsModeParamsPtr = ^QTSGraphicsModeParams;
  247. QTSGraphicsModeParams = record
  248. graphicsMode: SInt16;
  249. opColor: RGBColor;
  250. end;
  251. QTSGetURLLinkRecordPtr = ^QTSGetURLLinkRecord;
  252. QTSGetURLLinkRecord = record
  253. displayWhere: Point;
  254. returnedURLLink: Handle;
  255. end;
  256. const
  257. kQTSDataProcParamsVersion1 = 1;
  258. kQTSDataProcType_MediaSample = $6D646961 (* 'mdia' *);
  259. kQTSDataProcType_HintSample = $68696E74 (* 'hint' *);
  260. type
  261. QTSDataProcParamsPtr = ^QTSDataProcParams;
  262. QTSDataProcParams = record
  263. version: SInt32;
  264. flags: SInt32;
  265. stream: QTSStream;
  266. procType: OSType;
  267. proc: QTSNotificationUPP;
  268. procRefCon: Ptr;
  269. end;
  270. const
  271. kQTSDataProcSelector_SampleData = $73616D70 (* 'samp' *);
  272. kQTSDataProcSelector_UserData = $75736572 (* 'user' *);
  273. kQTSSampleDataCallbackParamsVersion1 = 1;
  274. type
  275. QTSSampleDataCallbackParamsPtr = ^QTSSampleDataCallbackParams;
  276. QTSSampleDataCallbackParams = record
  277. version: SInt32;
  278. flags: SInt32;
  279. stream: QTSStream;
  280. procType: OSType;
  281. mediaType: OSType;
  282. mediaTimeScale: TimeScale;
  283. sampleDesc: SampleDescriptionHandle;
  284. sampleDescSeed: UInt32;
  285. sampleTime: TimeValue64;
  286. duration: TimeValue64; { could be 0 }
  287. sampleFlags: SInt32;
  288. dataLength: UInt32;
  289. data: Ptr;
  290. end;
  291. const
  292. kQTSUserDataCallbackParamsVersion1 = 1;
  293. type
  294. QTSUserDataCallbackParamsPtr = ^QTSUserDataCallbackParams;
  295. QTSUserDataCallbackParams = record
  296. version: SInt32;
  297. flags: SInt32;
  298. stream: QTSStream;
  299. procType: OSType;
  300. userDataType: OSType;
  301. userDataHandle: Handle; { caller must make copy if it wants to keep the data around }
  302. end;
  303. const
  304. kQTSSendDataExtrasParamsVersion1 = 1;
  305. type
  306. QTSSendDataExtrasParamsPtr = ^QTSSendDataExtrasParams;
  307. QTSSendDataExtrasParams = record
  308. version: SInt32;
  309. flags: SInt32;
  310. procType: OSType;
  311. end;
  312. {$ifc TYPED_FUNCTION_POINTERS}
  313. QTSModalFilterProcPtr = function(inDialog: DialogPtr; const (*var*) inEvent: EventRecord; var ioItemHit: SInt16; inRefCon: UnivPtr): boolean;
  314. {$elsec}
  315. QTSModalFilterProcPtr = ProcPtr;
  316. {$endc}
  317. {$ifc OPAQUE_UPP_TYPES}
  318. QTSModalFilterUPP = ^SInt32; { an opaque UPP }
  319. {$elsec}
  320. QTSModalFilterUPP = UniversalProcPtr;
  321. {$endc}
  322. { -----------------------------------------
  323. Characteristics
  324. ----------------------------------------- }
  325. { characteristics in Movies.h work here too }
  326. const
  327. kQTSSupportsPerStreamControlCharacteristic = $70736374 (* 'psct' *);
  328. type
  329. QTSVideoParamsPtr = ^QTSVideoParams;
  330. QTSVideoParams = record
  331. width: Fixed;
  332. height: Fixed;
  333. matrix: MatrixRecord;
  334. gWorld: CGrafPtr;
  335. gdHandle: GDHandle_fix;
  336. clip: RgnHandle;
  337. graphicsMode: SInt16;
  338. opColor: RGBColor;
  339. end;
  340. QTSAudioParamsPtr = ^QTSAudioParams;
  341. QTSAudioParams = record
  342. leftVolume: SInt16;
  343. rightVolume: SInt16;
  344. bassLevel: SInt16;
  345. trebleLevel: SInt16;
  346. frequencyBandsCount: SInt16;
  347. frequencyBands: Ptr;
  348. levelMeteringEnabled: boolean;
  349. end;
  350. QTSMediaParamsPtr = ^QTSMediaParams;
  351. QTSMediaParams = record
  352. v: QTSVideoParams;
  353. a: QTSAudioParams;
  354. end;
  355. const
  356. kQTSMustDraw = $08;
  357. kQTSAtEnd = $10;
  358. kQTSPreflightDraw = $20;
  359. kQTSSyncDrawing = $40;
  360. { media task result flags }
  361. kQTSDidDraw = $01;
  362. kQTSNeedsToDraw = $04;
  363. kQTSDrawAgain = $08;
  364. kQTSPartialDraw = $10;
  365. { ============================================================================
  366. Notifications
  367. ============================================================================ }
  368. { ------ notification types ------ }
  369. kQTSNullNotification = $6E756C6C (* 'null' *); { NULL }
  370. kQTSErrorNotification = $65727220 (* 'err ' *); { QTSErrorParams*, optional }
  371. kQTSNewPresDetectedNotification = $6E657770 (* 'newp' *); { QTSNewPresDetectedParams* }
  372. kQTSPresBeginChangingNotification = $70726362 (* 'prcb' *); { NULL }
  373. kQTSPresDoneChangingNotification = $70726364 (* 'prcd' *); { NULL }
  374. kQTSPresentationChangedNotification = $70726368 (* 'prch' *); { NULL }
  375. kQTSNewStreamNotification = $73746E77 (* 'stnw' *); { QTSNewStreamParams* }
  376. kQTSStreamBeginChangingNotification = $73746362 (* 'stcb' *); { QTSStream }
  377. kQTSStreamDoneChangingNotification = $73746364 (* 'stcd' *); { QTSStream }
  378. kQTSStreamChangedNotification = $73746368 (* 'stch' *); { QTSStreamChangedParams* }
  379. kQTSStreamGoneNotification = $7374676E (* 'stgn' *); { QTSStreamGoneParams* }
  380. kQTSPreviewAckNotification = $7076616B (* 'pvak' *); { QTSStream }
  381. kQTSPrerollAckNotification = $7061636B (* 'pack' *); { QTSStream }
  382. kQTSStartAckNotification = $7361636B (* 'sack' *); { QTSStream }
  383. kQTSStopAckNotification = $7861636B (* 'xack' *); { QTSStream }
  384. kQTSStatusNotification = $73746174 (* 'stat' *); { QTSStatusParams* }
  385. kQTSURLNotification = $75726C20 (* 'url ' *); { QTSURLParams* }
  386. kQTSDurationNotification = $64757261 (* 'dura' *); { QTSDurationAtom* }
  387. kQTSNewPresentationNotification = $6E707273 (* 'nprs' *); { QTSPresentation }
  388. kQTSPresentationGoneNotification = $78707273 (* 'xprs' *); { QTSPresentation }
  389. kQTSPresentationDoneNotification = $70646F6E (* 'pdon' *); { NULL }
  390. kQTSBandwidthAlertNotification = $6277616C (* 'bwal' *); { QTSBandwidthAlertParams* }
  391. kQTSAnnotationsChangedNotification = $6D657461 (* 'meta' *); { NULL }
  392. { flags for QTSErrorParams }
  393. kQTSFatalErrorFlag = $00000001;
  394. type
  395. QTSErrorParamsPtr = ^QTSErrorParams;
  396. QTSErrorParams = record
  397. errorString: ConstCStringPtr;
  398. flags: SInt32;
  399. end;
  400. QTSNewPresDetectedParamsPtr = ^QTSNewPresDetectedParams;
  401. QTSNewPresDetectedParams = record
  402. data: Ptr;
  403. end;
  404. QTSNewStreamParamsPtr = ^QTSNewStreamParams;
  405. QTSNewStreamParams = record
  406. stream: QTSStream;
  407. end;
  408. QTSStreamChangedParamsPtr = ^QTSStreamChangedParams;
  409. QTSStreamChangedParams = record
  410. stream: QTSStream;
  411. mediaComponent: ComponentInstance; { could be NULL }
  412. end;
  413. QTSStreamGoneParamsPtr = ^QTSStreamGoneParams;
  414. QTSStreamGoneParams = record
  415. stream: QTSStream;
  416. end;
  417. QTSStatusParamsPtr = ^QTSStatusParams;
  418. QTSStatusParams = record
  419. status: UInt32;
  420. statusString: ConstCStringPtr;
  421. detailedStatus: UInt32;
  422. detailedStatusString: ConstCStringPtr;
  423. end;
  424. QTSInfoParamsPtr = ^QTSInfoParams;
  425. QTSInfoParams = record
  426. infoType: OSType;
  427. infoParams: Ptr;
  428. end;
  429. QTSURLParamsPtr = ^QTSURLParams;
  430. QTSURLParams = record
  431. urlLength: UInt32;
  432. url: ConstCStringPtr;
  433. end;
  434. const
  435. kQTSBandwidthAlertNeedToStop = $01;
  436. kQTSBandwidthAlertRestartAt = $02;
  437. type
  438. QTSBandwidthAlertParamsPtr = ^QTSBandwidthAlertParams;
  439. QTSBandwidthAlertParams = record
  440. flags: SInt32;
  441. restartAt: TimeValue; { new field in QT 4.1 }
  442. reserved: Ptr;
  443. end;
  444. { ============================================================================
  445. Presentation
  446. ============================================================================ }
  447. { -----------------------------------------
  448. Flags
  449. ----------------------------------------- }
  450. { flags for NewPresentationFromData }
  451. const
  452. kQTSAutoModeFlag = $00000001;
  453. kQTSDontShowStatusFlag = $00000008;
  454. kQTSSendMediaFlag = $00010000;
  455. kQTSReceiveMediaFlag = $00020000;
  456. type
  457. QTSNewPresentationParamsPtr = ^QTSNewPresentationParams;
  458. QTSNewPresentationParams = record
  459. dataType: OSType;
  460. data: Ptr;
  461. dataLength: UInt32;
  462. editList: QTSEditListHandle;
  463. flags: SInt32;
  464. timeScale: TimeScale_fix; { set to 0 for default timescale }
  465. mediaParams: QTSMediaParamsPtr;
  466. notificationProc: QTSNotificationUPP;
  467. notificationRefCon: Ptr;
  468. end;
  469. QTSPresParamsPtr = ^QTSPresParams;
  470. QTSPresParams = record
  471. version: UInt32;
  472. editList: QTSEditListHandle;
  473. flags: SInt32;
  474. timeScale: TimeScale_fix; { set to 0 for default timescale }
  475. mediaParams: QTSMediaParamsPtr;
  476. notificationProc: QTSNotificationUPP;
  477. notificationRefCon: Ptr;
  478. end;
  479. const
  480. kQTSPresParamsVersion1 = 1;
  481. type
  482. QTSPresIdleParamsPtr = ^QTSPresIdleParams;
  483. QTSPresIdleParams = record
  484. stream: QTSStream;
  485. movieTimeToDisplay: TimeValue64;
  486. flagsIn: SInt32;
  487. flagsOut: SInt32;
  488. end;
  489. const
  490. kQTSExportFlag_ShowDialog = $00000001;
  491. kQTSExportParamsVersion1 = 1;
  492. type
  493. QTSExportParamsPtr = ^QTSExportParams;
  494. QTSExportParams = record
  495. version: SInt32;
  496. exportType: OSType;
  497. exportExtraData: Ptr;
  498. destinationContainerType: OSType;
  499. destinationContainerData: Ptr;
  500. destinationContainerExtras: Ptr;
  501. flagsIn: SInt32;
  502. flagsOut: SInt32;
  503. filterProc: QTSModalFilterUPP;
  504. filterProcRefCon: Ptr;
  505. exportComponent: Component; { NULL unless you want to override }
  506. end;
  507. { -----------------------------------------
  508. Toolbox Init/Close
  509. ----------------------------------------- }
  510. { all "apps" must call this }
  511. {
  512. * InitializeQTS()
  513. *
  514. * Availability:
  515. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  516. * CarbonLib: in CarbonLib 1.1 and later
  517. * Mac OS X: in version 10.0 and later
  518. * Windows: in QTSClient.lib 4.0 and later
  519. }
  520. function InitializeQTS: OSErr; external name '_InitializeQTS';
  521. {
  522. * TerminateQTS()
  523. *
  524. * Availability:
  525. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  526. * CarbonLib: in CarbonLib 1.1 and later
  527. * Mac OS X: in version 10.0 and later
  528. * Windows: in QTSClient.lib 4.0 and later
  529. }
  530. function TerminateQTS: OSErr; external name '_TerminateQTS';
  531. {-----------------------------------------
  532. Presentation Functions
  533. -----------------------------------------}
  534. {
  535. * QTSNewPresentation()
  536. *
  537. * Availability:
  538. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  539. * CarbonLib: in CarbonLib 1.1 and later
  540. * Mac OS X: in version 10.0 and later
  541. * Windows: in QTSClient.lib 4.0 and later
  542. }
  543. function QTSNewPresentation(const (*var*) inParams: QTSNewPresentationParams; var outPresentation: QTSPresentation): OSErr; external name '_QTSNewPresentation';
  544. {
  545. * QTSNewPresentationFromData()
  546. *
  547. * Availability:
  548. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  549. * CarbonLib: in CarbonLib 1.3 and later
  550. * Mac OS X: in version 10.0 and later
  551. * Windows: in QTSClient.lib 5.0 and later
  552. }
  553. function QTSNewPresentationFromData(inDataType: OSType; inData: UnivPtr; (*const*) var inDataLength: SInt64; const (*var*) inPresParams: QTSPresParams; var outPresentation: QTSPresentation): OSErr; external name '_QTSNewPresentationFromData';
  554. {
  555. * QTSNewPresentationFromFile()
  556. *
  557. * Availability:
  558. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  559. * CarbonLib: in CarbonLib 1.3 and later
  560. * Mac OS X: in version 10.0 and later
  561. * Windows: in QTSClient.lib 5.0 and later
  562. }
  563. function QTSNewPresentationFromFile(const (*var*) inFileSpec: FSSpec; const (*var*) inPresParams: QTSPresParams; var outPresentation: QTSPresentation): OSErr; external name '_QTSNewPresentationFromFile';
  564. {
  565. * QTSNewPresentationFromDataRef()
  566. *
  567. * Availability:
  568. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  569. * CarbonLib: in CarbonLib 1.3 and later
  570. * Mac OS X: in version 10.0 and later
  571. * Windows: in QTSClient.lib 5.0 and later
  572. }
  573. function QTSNewPresentationFromDataRef(inDataRef: Handle; inDataRefType: OSType; const (*var*) inPresParams: QTSPresParams; var outPresentation: QTSPresentation): OSErr; external name '_QTSNewPresentationFromDataRef';
  574. {
  575. * QTSDisposePresentation()
  576. *
  577. * Availability:
  578. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  579. * CarbonLib: in CarbonLib 1.1 and later
  580. * Mac OS X: in version 10.0 and later
  581. * Windows: in QTSClient.lib 4.0 and later
  582. }
  583. function QTSDisposePresentation(inPresentation: QTSPresentation; inFlags: SInt32): OSErr; external name '_QTSDisposePresentation';
  584. {
  585. * QTSPresExport()
  586. *
  587. * Availability:
  588. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  589. * CarbonLib: in CarbonLib 1.3 and later
  590. * Mac OS X: in version 10.0 and later
  591. * Windows: in QTSClient.lib 5.0 and later
  592. }
  593. function QTSPresExport(inPresentation: QTSPresentation; inStream: QTSStream; var inExportParams: QTSExportParams): OSErr; external name '_QTSPresExport';
  594. {
  595. * QTSPresIdle()
  596. *
  597. * Availability:
  598. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  599. * CarbonLib: in CarbonLib 1.1 and later
  600. * Mac OS X: in version 10.0 and later
  601. * Windows: in QTSClient.lib 4.0 and later
  602. }
  603. procedure QTSPresIdle(inPresentation: QTSPresentation; var ioParams: QTSPresIdleParams); external name '_QTSPresIdle';
  604. {
  605. * QTSPresInvalidateRegion()
  606. *
  607. * Availability:
  608. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  609. * CarbonLib: in CarbonLib 1.1 and later
  610. * Mac OS X: in version 10.0 and later
  611. * Windows: in QTSClient.lib 4.0 and later
  612. }
  613. function QTSPresInvalidateRegion(inPresentation: QTSPresentation; inRegion: RgnHandle): OSErr; external name '_QTSPresInvalidateRegion';
  614. {-----------------------------------------
  615. Presentation Configuration
  616. -----------------------------------------}
  617. {
  618. * QTSPresSetFlags()
  619. *
  620. * Availability:
  621. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  622. * CarbonLib: in CarbonLib 1.1 and later
  623. * Mac OS X: in version 10.0 and later
  624. * Windows: in QTSClient.lib 4.0 and later
  625. }
  626. function QTSPresSetFlags(inPresentation: QTSPresentation; inFlags: SInt32; inFlagsMask: SInt32): OSErr; external name '_QTSPresSetFlags';
  627. {
  628. * QTSPresGetFlags()
  629. *
  630. * Availability:
  631. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  632. * CarbonLib: in CarbonLib 1.1 and later
  633. * Mac OS X: in version 10.0 and later
  634. * Windows: in QTSClient.lib 4.0 and later
  635. }
  636. function QTSPresGetFlags(inPresentation: QTSPresentation; var outFlags: SInt32): OSErr; external name '_QTSPresGetFlags';
  637. {
  638. * QTSPresGetTimeBase()
  639. *
  640. * Availability:
  641. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  642. * CarbonLib: in CarbonLib 1.1 and later
  643. * Mac OS X: in version 10.0 and later
  644. * Windows: in QTSClient.lib 4.0 and later
  645. }
  646. function QTSPresGetTimeBase(inPresentation: QTSPresentation; var outTimeBase: TimeBase): OSErr; external name '_QTSPresGetTimeBase';
  647. {
  648. * QTSPresGetTimeScale()
  649. *
  650. * Availability:
  651. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  652. * CarbonLib: in CarbonLib 1.1 and later
  653. * Mac OS X: in version 10.0 and later
  654. * Windows: in QTSClient.lib 4.0 and later
  655. }
  656. function QTSPresGetTimeScale(inPresentation: QTSPresentation; var outTimeScale: TimeScale): OSErr; external name '_QTSPresGetTimeScale';
  657. {
  658. * QTSPresSetInfo()
  659. *
  660. * Availability:
  661. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  662. * CarbonLib: in CarbonLib 1.1 and later
  663. * Mac OS X: in version 10.0 and later
  664. * Windows: in QTSClient.lib 4.0 and later
  665. }
  666. function QTSPresSetInfo(inPresentation: QTSPresentation; inStream: QTSStream; inSelector: OSType; ioParam: UnivPtr): OSErr; external name '_QTSPresSetInfo';
  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. function QTSPresGetInfo(inPresentation: QTSPresentation; inStream: QTSStream; inSelector: OSType; ioParam: UnivPtr): OSErr; external name '_QTSPresGetInfo';
  677. {
  678. * QTSPresHasCharacteristic()
  679. *
  680. * Availability:
  681. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  682. * CarbonLib: in CarbonLib 1.1 and later
  683. * Mac OS X: in version 10.0 and later
  684. * Windows: in QTSClient.lib 4.0 and later
  685. }
  686. function QTSPresHasCharacteristic(inPresentation: QTSPresentation; inStream: QTSStream; inCharacteristic: OSType; var outHasIt: boolean): OSErr; external name '_QTSPresHasCharacteristic';
  687. {
  688. * QTSPresSetNotificationProc()
  689. *
  690. * Availability:
  691. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  692. * CarbonLib: in CarbonLib 1.1 and later
  693. * Mac OS X: in version 10.0 and later
  694. * Windows: in QTSClient.lib 4.0 and later
  695. }
  696. function QTSPresSetNotificationProc(inPresentation: QTSPresentation; inNotificationProc: QTSNotificationUPP; inRefCon: UnivPtr): OSErr; external name '_QTSPresSetNotificationProc';
  697. {
  698. * QTSPresGetNotificationProc()
  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. function QTSPresGetNotificationProc(inPresentation: QTSPresentation; var outNotificationProc: QTSNotificationUPP; var outRefCon: UnivPtr): OSErr; external name '_QTSPresGetNotificationProc';
  707. {-----------------------------------------
  708. Presentation Control
  709. -----------------------------------------}
  710. {
  711. * QTSPresPreview()
  712. *
  713. * Availability:
  714. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  715. * CarbonLib: in CarbonLib 1.3 and later
  716. * Mac OS X: in version 10.0 and later
  717. }
  718. function QTSPresPreview(inPresentation: QTSPresentation; inStream: QTSStream; (*const*) var inTimeValue: TimeValue64; inRate: Fixed; inFlags: SInt32): OSErr; external name '_QTSPresPreview';
  719. {
  720. * QTSPresPreroll()
  721. *
  722. * Availability:
  723. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  724. * CarbonLib: in CarbonLib 1.1 and later
  725. * Mac OS X: in version 10.0 and later
  726. * Windows: in QTSClient.lib 4.0 and later
  727. }
  728. function QTSPresPreroll(inPresentation: QTSPresentation; inStream: QTSStream; inTimeValue: UInt32; inRate: Fixed; inFlags: SInt32): OSErr; external name '_QTSPresPreroll';
  729. {
  730. * QTSPresPreroll64()
  731. *
  732. * Availability:
  733. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  734. * CarbonLib: in CarbonLib 1.1 and later
  735. * Mac OS X: in version 10.0 and later
  736. * Windows: in QTSClient.lib 4.1 and later
  737. }
  738. function QTSPresPreroll64(inPresentation: QTSPresentation; inStream: QTSStream; (*const*) var inPrerollTime: TimeValue64; inRate: Fixed; inFlags: SInt32): OSErr; external name '_QTSPresPreroll64';
  739. {
  740. * QTSPresStart()
  741. *
  742. * Availability:
  743. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  744. * CarbonLib: in CarbonLib 1.1 and later
  745. * Mac OS X: in version 10.0 and later
  746. * Windows: in QTSClient.lib 4.0 and later
  747. }
  748. function QTSPresStart(inPresentation: QTSPresentation; inStream: QTSStream; inFlags: SInt32): OSErr; external name '_QTSPresStart';
  749. {
  750. * QTSPresSkipTo()
  751. *
  752. * Availability:
  753. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  754. * CarbonLib: in CarbonLib 1.1 and later
  755. * Mac OS X: in version 10.0 and later
  756. * Windows: in QTSClient.lib 4.0 and later
  757. }
  758. function QTSPresSkipTo(inPresentation: QTSPresentation; inTimeValue: UInt32): OSErr; external name '_QTSPresSkipTo';
  759. {
  760. * QTSPresSkipTo64()
  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. function QTSPresSkipTo64(inPresentation: QTSPresentation; (*const*) var inTimeValue: TimeValue64): OSErr; external name '_QTSPresSkipTo64';
  769. {
  770. * QTSPresStop()
  771. *
  772. * Availability:
  773. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  774. * CarbonLib: in CarbonLib 1.1 and later
  775. * Mac OS X: in version 10.0 and later
  776. * Windows: in QTSClient.lib 4.0 and later
  777. }
  778. function QTSPresStop(inPresentation: QTSPresentation; inStream: QTSStream; inFlags: SInt32): OSErr; external name '_QTSPresStop';
  779. {============================================================================
  780. Streams
  781. ============================================================================}
  782. {-----------------------------------------
  783. Stream Functions
  784. -----------------------------------------}
  785. {
  786. * QTSPresNewStream()
  787. *
  788. * Availability:
  789. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  790. * CarbonLib: in CarbonLib 1.1 and later
  791. * Mac OS X: in version 10.0 and later
  792. * Windows: in QTSClient.lib 4.0 and later
  793. }
  794. function QTSPresNewStream(inPresentation: QTSPresentation; inDataType: OSType; inData: UnivPtr; inDataLength: UInt32; inFlags: SInt32; var outStream: QTSStream): OSErr; external name '_QTSPresNewStream';
  795. {
  796. * QTSDisposeStream()
  797. *
  798. * Availability:
  799. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  800. * CarbonLib: in CarbonLib 1.1 and later
  801. * Mac OS X: in version 10.0 and later
  802. * Windows: in QTSClient.lib 4.0 and later
  803. }
  804. function QTSDisposeStream(inStream: QTSStream; inFlags: SInt32): OSErr; external name '_QTSDisposeStream';
  805. {
  806. * QTSPresGetNumStreams()
  807. *
  808. * Availability:
  809. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  810. * CarbonLib: in CarbonLib 1.1 and later
  811. * Mac OS X: in version 10.0 and later
  812. * Windows: in QTSClient.lib 4.0 and later
  813. }
  814. function QTSPresGetNumStreams(inPresentation: QTSPresentation): UInt32; external name '_QTSPresGetNumStreams';
  815. {
  816. * QTSPresGetIndStream()
  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. function QTSPresGetIndStream(inPresentation: QTSPresentation; inIndex: UInt32): QTSStream; external name '_QTSPresGetIndStream';
  825. {
  826. * QTSGetStreamPresentation()
  827. *
  828. * Availability:
  829. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  830. * CarbonLib: in CarbonLib 1.1 and later
  831. * Mac OS X: in version 10.0 and later
  832. * Windows: in QTSClient.lib 4.0 and later
  833. }
  834. function QTSGetStreamPresentation(inStream: QTSStream): QTSPresentation; external name '_QTSGetStreamPresentation';
  835. {
  836. * QTSPresSetPreferredRate()
  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. function QTSPresSetPreferredRate(inPresentation: QTSPresentation; inRate: Fixed; inFlags: SInt32): OSErr; external name '_QTSPresSetPreferredRate';
  845. {
  846. * QTSPresGetPreferredRate()
  847. *
  848. * Availability:
  849. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  850. * CarbonLib: in CarbonLib 1.1 and later
  851. * Mac OS X: in version 10.0 and later
  852. * Windows: in QTSClient.lib 4.0 and later
  853. }
  854. function QTSPresGetPreferredRate(inPresentation: QTSPresentation; var outRate: Fixed): OSErr; external name '_QTSPresGetPreferredRate';
  855. {
  856. * QTSPresSetEnable()
  857. *
  858. * Availability:
  859. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  860. * CarbonLib: in CarbonLib 1.1 and later
  861. * Mac OS X: in version 10.0 and later
  862. * Windows: in QTSClient.lib 4.0 and later
  863. }
  864. function QTSPresSetEnable(inPresentation: QTSPresentation; inStream: QTSStream; inEnableMode: boolean): OSErr; external name '_QTSPresSetEnable';
  865. {
  866. * QTSPresGetEnable()
  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. function QTSPresGetEnable(inPresentation: QTSPresentation; inStream: QTSStream; var outEnableMode: boolean): OSErr; external name '_QTSPresGetEnable';
  875. {
  876. * QTSPresSetPresenting()
  877. *
  878. * Availability:
  879. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  880. * CarbonLib: in CarbonLib 1.1 and later
  881. * Mac OS X: in version 10.0 and later
  882. * Windows: in QTSClient.lib 4.0 and later
  883. }
  884. function QTSPresSetPresenting(inPresentation: QTSPresentation; inStream: QTSStream; inPresentingMode: boolean): OSErr; external name '_QTSPresSetPresenting';
  885. {
  886. * QTSPresGetPresenting()
  887. *
  888. * Availability:
  889. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  890. * CarbonLib: in CarbonLib 1.1 and later
  891. * Mac OS X: in version 10.0 and later
  892. * Windows: in QTSClient.lib 4.0 and later
  893. }
  894. function QTSPresGetPresenting(inPresentation: QTSPresentation; inStream: QTSStream; var outPresentingMode: boolean): OSErr; external name '_QTSPresGetPresenting';
  895. {
  896. * QTSPresSetActiveSegment()
  897. *
  898. * Availability:
  899. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  900. * CarbonLib: in CarbonLib 1.1 and later
  901. * Mac OS X: in version 10.0 and later
  902. * Windows: in QTSClient.lib 4.1 and later
  903. }
  904. function QTSPresSetActiveSegment(inPresentation: QTSPresentation; inStream: QTSStream; (*const*) var inStartTime: TimeValue64; (*const*) var inDuration: TimeValue64): OSErr; external name '_QTSPresSetActiveSegment';
  905. {
  906. * QTSPresGetActiveSegment()
  907. *
  908. * Availability:
  909. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  910. * CarbonLib: in CarbonLib 1.1 and later
  911. * Mac OS X: in version 10.0 and later
  912. * Windows: in QTSClient.lib 4.1 and later
  913. }
  914. function QTSPresGetActiveSegment(inPresentation: QTSPresentation; inStream: QTSStream; var outStartTime: TimeValue64; var outDuration: TimeValue64): OSErr; external name '_QTSPresGetActiveSegment';
  915. {
  916. * QTSPresSetPlayHints()
  917. *
  918. * Availability:
  919. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  920. * CarbonLib: in CarbonLib 1.1 and later
  921. * Mac OS X: in version 10.0 and later
  922. * Windows: in QTSClient.lib 4.0 and later
  923. }
  924. function QTSPresSetPlayHints(inPresentation: QTSPresentation; inStream: QTSStream; inFlags: SInt32; inFlagsMask: SInt32): OSErr; external name '_QTSPresSetPlayHints';
  925. {
  926. * QTSPresGetPlayHints()
  927. *
  928. * Availability:
  929. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  930. * CarbonLib: in CarbonLib 1.1 and later
  931. * Mac OS X: in version 10.0 and later
  932. * Windows: in QTSClient.lib 4.0 and later
  933. }
  934. function QTSPresGetPlayHints(inPresentation: QTSPresentation; inStream: QTSStream; var outFlags: SInt32): OSErr; external name '_QTSPresGetPlayHints';
  935. {-----------------------------------------
  936. Stream Spatial Functions
  937. -----------------------------------------}
  938. {
  939. * QTSPresSetGWorld()
  940. *
  941. * Availability:
  942. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  943. * CarbonLib: in CarbonLib 1.1 and later
  944. * Mac OS X: in version 10.0 and later
  945. * Windows: in QTSClient.lib 4.0 and later
  946. }
  947. function QTSPresSetGWorld(inPresentation: QTSPresentation; inStream: QTSStream; inGWorld: CGrafPtr; inGDHandle: GDHandle): OSErr; external name '_QTSPresSetGWorld';
  948. {
  949. * QTSPresGetGWorld()
  950. *
  951. * Availability:
  952. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  953. * CarbonLib: in CarbonLib 1.1 and later
  954. * Mac OS X: in version 10.0 and later
  955. * Windows: in QTSClient.lib 4.0 and later
  956. }
  957. function QTSPresGetGWorld(inPresentation: QTSPresentation; inStream: QTSStream; var outGWorld: CGrafPtr; var outGDHandle: GDHandle): OSErr; external name '_QTSPresGetGWorld';
  958. {
  959. * QTSPresSetClip()
  960. *
  961. * Availability:
  962. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  963. * CarbonLib: in CarbonLib 1.1 and later
  964. * Mac OS X: in version 10.0 and later
  965. * Windows: in QTSClient.lib 4.0 and later
  966. }
  967. function QTSPresSetClip(inPresentation: QTSPresentation; inStream: QTSStream; inClip: RgnHandle): OSErr; external name '_QTSPresSetClip';
  968. {
  969. * QTSPresGetClip()
  970. *
  971. * Availability:
  972. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  973. * CarbonLib: in CarbonLib 1.1 and later
  974. * Mac OS X: in version 10.0 and later
  975. * Windows: in QTSClient.lib 4.0 and later
  976. }
  977. function QTSPresGetClip(inPresentation: QTSPresentation; inStream: QTSStream; var outClip: RgnHandle): OSErr; external name '_QTSPresGetClip';
  978. {
  979. * QTSPresSetMatrix()
  980. *
  981. * Availability:
  982. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  983. * CarbonLib: in CarbonLib 1.1 and later
  984. * Mac OS X: in version 10.0 and later
  985. * Windows: in QTSClient.lib 4.0 and later
  986. }
  987. function QTSPresSetMatrix(inPresentation: QTSPresentation; inStream: QTSStream; const (*var*) inMatrix: MatrixRecord): OSErr; external name '_QTSPresSetMatrix';
  988. {
  989. * QTSPresGetMatrix()
  990. *
  991. * Availability:
  992. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  993. * CarbonLib: in CarbonLib 1.1 and later
  994. * Mac OS X: in version 10.0 and later
  995. * Windows: in QTSClient.lib 4.0 and later
  996. }
  997. function QTSPresGetMatrix(inPresentation: QTSPresentation; inStream: QTSStream; var outMatrix: MatrixRecord): OSErr; external name '_QTSPresGetMatrix';
  998. {
  999. * QTSPresSetDimensions()
  1000. *
  1001. * Availability:
  1002. * Non-Carbon CFM: in QTStreamLib 4.0 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.0 and later
  1006. }
  1007. function QTSPresSetDimensions(inPresentation: QTSPresentation; inStream: QTSStream; inWidth: Fixed; inHeight: Fixed): OSErr; external name '_QTSPresSetDimensions';
  1008. {
  1009. * QTSPresGetDimensions()
  1010. *
  1011. * Availability:
  1012. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1013. * CarbonLib: in CarbonLib 1.1 and later
  1014. * Mac OS X: in version 10.0 and later
  1015. * Windows: in QTSClient.lib 4.0 and later
  1016. }
  1017. function QTSPresGetDimensions(inPresentation: QTSPresentation; inStream: QTSStream; var outWidth: Fixed; var outHeight: Fixed): OSErr; external name '_QTSPresGetDimensions';
  1018. {
  1019. * QTSPresSetGraphicsMode()
  1020. *
  1021. * Availability:
  1022. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1023. * CarbonLib: in CarbonLib 1.1 and later
  1024. * Mac OS X: in version 10.0 and later
  1025. * Windows: in QTSClient.lib 4.0 and later
  1026. }
  1027. function QTSPresSetGraphicsMode(inPresentation: QTSPresentation; inStream: QTSStream; inMode: SInt16; const (*var*) inOpColor: RGBColor): OSErr; external name '_QTSPresSetGraphicsMode';
  1028. {
  1029. * QTSPresGetGraphicsMode()
  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. function QTSPresGetGraphicsMode(inPresentation: QTSPresentation; inStream: QTSStream; var outMode: SInt16; var outOpColor: RGBColor): OSErr; external name '_QTSPresGetGraphicsMode';
  1038. {
  1039. * QTSPresGetPicture()
  1040. *
  1041. * Availability:
  1042. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1043. * CarbonLib: in CarbonLib 1.1 and later
  1044. * Mac OS X: in version 10.0 and later
  1045. * Windows: in QTSClient.lib 4.0 and later
  1046. }
  1047. function QTSPresGetPicture(inPresentation: QTSPresentation; inStream: QTSStream; var outPicture: PicHandle): OSErr; external name '_QTSPresGetPicture';
  1048. {-----------------------------------------
  1049. Stream Sound Functions
  1050. -----------------------------------------}
  1051. {
  1052. * QTSPresSetVolumes()
  1053. *
  1054. * Availability:
  1055. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1056. * CarbonLib: in CarbonLib 1.1 and later
  1057. * Mac OS X: in version 10.0 and later
  1058. * Windows: in QTSClient.lib 4.0 and later
  1059. }
  1060. function QTSPresSetVolumes(inPresentation: QTSPresentation; inStream: QTSStream; inLeftVolume: SInt16; inRightVolume: SInt16): OSErr; external name '_QTSPresSetVolumes';
  1061. {
  1062. * QTSPresGetVolumes()
  1063. *
  1064. * Availability:
  1065. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1066. * CarbonLib: in CarbonLib 1.1 and later
  1067. * Mac OS X: in version 10.0 and later
  1068. * Windows: in QTSClient.lib 4.0 and later
  1069. }
  1070. function QTSPresGetVolumes(inPresentation: QTSPresentation; inStream: QTSStream; var outLeftVolume: SInt16; var outRightVolume: SInt16): OSErr; external name '_QTSPresGetVolumes';
  1071. {-----------------------------------------
  1072. Sourcing
  1073. -----------------------------------------}
  1074. {
  1075. * QTSPresGetSettingsAsText()
  1076. *
  1077. * Availability:
  1078. * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
  1079. * CarbonLib: in CarbonLib 1.6 and later
  1080. * Mac OS X: in version 10.1 and later
  1081. }
  1082. function QTSPresGetSettingsAsText(inPresentation: QTSPresentation; inStream: QTSStream; inFlags: SInt32; inSettingsType: OSType; var outText: Handle; inPanelFilterProc: QTSPanelFilterUPP; inPanelFilterProcRefCon: UnivPtr): OSErr; external name '_QTSPresGetSettingsAsText';
  1083. {
  1084. * QTSPresSettingsDialog()
  1085. *
  1086. * Availability:
  1087. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1088. * CarbonLib: in CarbonLib 1.3 and later
  1089. * Mac OS X: in version 10.0 and later
  1090. }
  1091. function QTSPresSettingsDialog(inPresentation: QTSPresentation; inStream: QTSStream; inFlags: SInt32; inFilterProc: QTSModalFilterUPP; inFilterProcRefCon: UnivPtr): OSErr; external name '_QTSPresSettingsDialog';
  1092. {
  1093. * QTSPresSettingsDialogWithFilters()
  1094. *
  1095. * Availability:
  1096. * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
  1097. * CarbonLib: in CarbonLib 1.6 and later
  1098. * Mac OS X: in version 10.1 and later
  1099. }
  1100. function QTSPresSettingsDialogWithFilters(inPresentation: QTSPresentation; inStream: QTSStream; inFlags: SInt32; inFilterProc: QTSModalFilterUPP; inFilterProcRefCon: UnivPtr; inPanelFilterProc: QTSPanelFilterUPP; inPanelFilterProcRefCon: UnivPtr): OSErr; external name '_QTSPresSettingsDialogWithFilters';
  1101. {
  1102. * QTSPresSetSettings()
  1103. *
  1104. * Availability:
  1105. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1106. * CarbonLib: in CarbonLib 1.3 and later
  1107. * Mac OS X: in version 10.0 and later
  1108. }
  1109. function QTSPresSetSettings(inPresentation: QTSPresentation; inStream: QTSStream; inSettings: QTAtomSpecPtr; inFlags: SInt32): OSErr; external name '_QTSPresSetSettings';
  1110. {
  1111. * QTSPresGetSettings()
  1112. *
  1113. * Availability:
  1114. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1115. * CarbonLib: in CarbonLib 1.3 and later
  1116. * Mac OS X: in version 10.0 and later
  1117. }
  1118. function QTSPresGetSettings(inPresentation: QTSPresentation; inStream: QTSStream; var outSettings: QTAtomContainer; inFlags: SInt32): OSErr; external name '_QTSPresGetSettings';
  1119. {
  1120. * QTSPresAddSourcer()
  1121. *
  1122. * Availability:
  1123. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1124. * CarbonLib: in CarbonLib 1.3 and later
  1125. * Mac OS X: in version 10.0 and later
  1126. }
  1127. function QTSPresAddSourcer(inPresentation: QTSPresentation; inStream: QTSStream; inSourcer: ComponentInstance; inFlags: SInt32): OSErr; external name '_QTSPresAddSourcer';
  1128. {
  1129. * QTSPresRemoveSourcer()
  1130. *
  1131. * Availability:
  1132. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1133. * CarbonLib: in CarbonLib 1.3 and later
  1134. * Mac OS X: in version 10.0 and later
  1135. }
  1136. function QTSPresRemoveSourcer(inPresentation: QTSPresentation; inStream: QTSStream; inSourcer: ComponentInstance; inFlags: SInt32): OSErr; external name '_QTSPresRemoveSourcer';
  1137. {
  1138. * QTSPresGetNumSourcers()
  1139. *
  1140. * Availability:
  1141. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1142. * CarbonLib: in CarbonLib 1.3 and later
  1143. * Mac OS X: in version 10.0 and later
  1144. }
  1145. function QTSPresGetNumSourcers(inPresentation: QTSPresentation; inStream: QTSStream): UInt32; external name '_QTSPresGetNumSourcers';
  1146. {
  1147. * QTSPresGetIndSourcer()
  1148. *
  1149. * Availability:
  1150. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1151. * CarbonLib: in CarbonLib 1.3 and later
  1152. * Mac OS X: in version 10.0 and later
  1153. }
  1154. function QTSPresGetIndSourcer(inPresentation: QTSPresentation; inStream: QTSStream; inIndex: UInt32; var outSourcer: ComponentInstance): OSErr; external name '_QTSPresGetIndSourcer';
  1155. {============================================================================
  1156. Misc
  1157. ============================================================================}
  1158. { flags for Get/SetNetworkAppName }
  1159. const
  1160. kQTSNetworkAppNameIsFullNameFlag = $00000001;
  1161. {
  1162. * QTSSetNetworkAppName()
  1163. *
  1164. * Availability:
  1165. * Non-Carbon CFM: in QTStreamLib 4.1 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.1 and later
  1169. }
  1170. function QTSSetNetworkAppName(inAppName: ConstCStringPtr; inFlags: SInt32): OSErr; external name '_QTSSetNetworkAppName';
  1171. {
  1172. * QTSGetNetworkAppName()
  1173. *
  1174. * Availability:
  1175. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1176. * CarbonLib: in CarbonLib 1.1 and later
  1177. * Mac OS X: in version 10.0 and later
  1178. * Windows: in QTSClient.lib 4.1 and later
  1179. }
  1180. function QTSGetNetworkAppName(inFlags: SInt32; var outCStringPtr: CStringPtr): OSErr; external name '_QTSGetNetworkAppName';
  1181. {-----------------------------------------
  1182. Statistics Utilities
  1183. -----------------------------------------}
  1184. type
  1185. QTSStatHelperRecordPtr = ^QTSStatHelperRecord;
  1186. QTSStatHelperRecord = record
  1187. data: array [0..0] of SInt32;
  1188. end;
  1189. QTSStatHelper = ^QTSStatHelperRecord;
  1190. const
  1191. kQTSInvalidStatHelper = 0;
  1192. { flags for QTSStatHelperNextParams }
  1193. kQTSStatHelperReturnPascalStringsFlag = $00000001;
  1194. type
  1195. QTSStatHelperNextParamsPtr = ^QTSStatHelperNextParams;
  1196. QTSStatHelperNextParams = record
  1197. flags: SInt32;
  1198. returnedStatisticsType: OSType;
  1199. returnedStream: QTSStream;
  1200. maxStatNameLength: UInt32;
  1201. returnedStatName: CStringPtr; { NULL if you don't want it }
  1202. maxStatStringLength: UInt32;
  1203. returnedStatString: CStringPtr; { NULL if you don't want it }
  1204. maxStatUnitLength: UInt32;
  1205. returnedStatUnit: CStringPtr; { NULL if you don't want it }
  1206. end;
  1207. QTSStatisticsParamsPtr = ^QTSStatisticsParams;
  1208. QTSStatisticsParams = record
  1209. statisticsType: OSType;
  1210. container: QTAtomContainer;
  1211. parentAtom: QTAtom;
  1212. flags: SInt32;
  1213. end;
  1214. { general statistics types }
  1215. const
  1216. kQTSAllStatisticsType = $616C6C20 (* 'all ' *);
  1217. kQTSShortStatisticsType = $73687274 (* 'shrt' *);
  1218. kQTSSummaryStatisticsType = $73756D6D (* 'summ' *);
  1219. { statistics flags }
  1220. kQTSGetNameStatisticsFlag = $00000001;
  1221. kQTSDontGetDataStatisticsFlag = $00000002;
  1222. kQTSUpdateAtomsStatisticsFlag = $00000004;
  1223. kQTSGetUnitsStatisticsFlag = $00000008;
  1224. kQTSUpdateAllIfNecessaryStatisticsFlag = $00010000;
  1225. { statistics atom types }
  1226. kQTSStatisticsStreamAtomType = $7374726D (* 'strm' *);
  1227. kQTSStatisticsNameAtomType = $6E616D65 (* 'name' *); { chars only, no length or terminator }
  1228. kQTSStatisticsDataFormatAtomType = $66726D74 (* 'frmt' *); { OSType }
  1229. kQTSStatisticsDataAtomType = $64617461 (* 'data' *);
  1230. kQTSStatisticsUnitsAtomType = $756E6974 (* 'unit' *); { OSType }
  1231. kQTSStatisticsUnitsNameAtomType = $756E696E (* 'unin' *); { chars only, no length or terminator }
  1232. { statistics data formats }
  1233. kQTSStatisticsSInt32DataFormat = $73693332 (* 'si32' *);
  1234. kQTSStatisticsUInt32DataFormat = $75693332 (* 'ui32' *);
  1235. kQTSStatisticsSInt16DataFormat = $73693136 (* 'si16' *);
  1236. kQTSStatisticsUInt16DataFormat = $75693136 (* 'ui16' *);
  1237. kQTSStatisticsFixedDataFormat = $66697864 (* 'fixd' *);
  1238. kQTSStatisticsUnsignedFixedDataFormat = $75666978 (* 'ufix' *);
  1239. kQTSStatisticsStringDataFormat = $73747267 (* 'strg' *);
  1240. kQTSStatisticsOSTypeDataFormat = $6F737470 (* 'ostp' *);
  1241. kQTSStatisticsRectDataFormat = $72656374 (* 'rect' *);
  1242. kQTSStatisticsPointDataFormat = $706F6E74 (* 'pont' *);
  1243. { statistics units types }
  1244. kQTSStatisticsNoUnitsType = 0;
  1245. kQTSStatisticsPercentUnitsType = $70636E74 (* 'pcnt' *);
  1246. kQTSStatisticsBitsPerSecUnitsType = $62707320 (* 'bps ' *);
  1247. kQTSStatisticsFramesPerSecUnitsType = $66707320 (* 'fps ' *);
  1248. { specific statistics types }
  1249. kQTSTotalDataRateStat = $64727474 (* 'drtt' *);
  1250. kQTSTotalDataRateInStat = $64727469 (* 'drti' *);
  1251. kQTSTotalDataRateOutStat = $6472746F (* 'drto' *);
  1252. kQTSNetworkIDStringStat = $6E696473 (* 'nids' *);
  1253. {
  1254. * QTSNewStatHelper()
  1255. *
  1256. * Availability:
  1257. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1258. * CarbonLib: in CarbonLib 1.1 and later
  1259. * Mac OS X: in version 10.0 and later
  1260. * Windows: in QTSClient.lib 4.0 and later
  1261. }
  1262. function QTSNewStatHelper(inPresentation: QTSPresentation; inStream: QTSStream; inStatType: OSType; inFlags: SInt32; var outStatHelper: QTSStatHelper): OSErr; external name '_QTSNewStatHelper';
  1263. {
  1264. * QTSDisposeStatHelper()
  1265. *
  1266. * Availability:
  1267. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1268. * CarbonLib: in CarbonLib 1.1 and later
  1269. * Mac OS X: in version 10.0 and later
  1270. * Windows: in QTSClient.lib 4.0 and later
  1271. }
  1272. function QTSDisposeStatHelper(inStatHelper: QTSStatHelper): OSErr; external name '_QTSDisposeStatHelper';
  1273. {
  1274. * QTSStatHelperGetStats()
  1275. *
  1276. * Availability:
  1277. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1278. * CarbonLib: in CarbonLib 1.1 and later
  1279. * Mac OS X: in version 10.0 and later
  1280. * Windows: in QTSClient.lib 4.0 and later
  1281. }
  1282. function QTSStatHelperGetStats(inStatHelper: QTSStatHelper): OSErr; external name '_QTSStatHelperGetStats';
  1283. {
  1284. * QTSStatHelperResetIter()
  1285. *
  1286. * Availability:
  1287. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1288. * CarbonLib: in CarbonLib 1.1 and later
  1289. * Mac OS X: in version 10.0 and later
  1290. * Windows: in QTSClient.lib 4.0 and later
  1291. }
  1292. function QTSStatHelperResetIter(inStatHelper: QTSStatHelper): OSErr; external name '_QTSStatHelperResetIter';
  1293. {
  1294. * QTSStatHelperNext()
  1295. *
  1296. * Availability:
  1297. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1298. * CarbonLib: in CarbonLib 1.1 and later
  1299. * Mac OS X: in version 10.0 and later
  1300. * Windows: in QTSClient.lib 4.0 and later
  1301. }
  1302. function QTSStatHelperNext(inStatHelper: QTSStatHelper; var ioParams: QTSStatHelperNextParams): boolean; external name '_QTSStatHelperNext';
  1303. {
  1304. * QTSStatHelperGetNumStats()
  1305. *
  1306. * Availability:
  1307. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1308. * CarbonLib: in CarbonLib 1.1 and later
  1309. * Mac OS X: in version 10.0 and later
  1310. * Windows: in QTSClient.lib 4.0 and later
  1311. }
  1312. function QTSStatHelperGetNumStats(inStatHelper: QTSStatHelper): UInt32; external name '_QTSStatHelperGetNumStats';
  1313. { used by components to put statistics into the atom container }
  1314. {
  1315. * QTSGetOrMakeStatAtomForStream()
  1316. *
  1317. * Availability:
  1318. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1319. * CarbonLib: in CarbonLib 1.1 and later
  1320. * Mac OS X: in version 10.0 and later
  1321. * Windows: in QTSClient.lib 4.0 and later
  1322. }
  1323. function QTSGetOrMakeStatAtomForStream(inContainer: QTAtomContainer; inStream: QTSStream; var outParentAtom: QTAtom): OSErr; external name '_QTSGetOrMakeStatAtomForStream';
  1324. {
  1325. * QTSInsertStatistic()
  1326. *
  1327. * Availability:
  1328. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1329. * CarbonLib: in CarbonLib 1.1 and later
  1330. * Mac OS X: in version 10.0 and later
  1331. * Windows: in QTSClient.lib 4.0 and later
  1332. }
  1333. function QTSInsertStatistic(inContainer: QTAtomContainer; inParentAtom: QTAtom; inStatType: OSType; inStatData: UnivPtr; inStatDataLength: UInt32; inStatDataFormat: OSType; inFlags: SInt32): OSErr; external name '_QTSInsertStatistic';
  1334. {
  1335. * QTSInsertStatisticName()
  1336. *
  1337. * Availability:
  1338. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1339. * CarbonLib: in CarbonLib 1.1 and later
  1340. * Mac OS X: in version 10.0 and later
  1341. * Windows: in QTSClient.lib 4.0 and later
  1342. }
  1343. function QTSInsertStatisticName(inContainer: QTAtomContainer; inParentAtom: QTAtom; inStatType: OSType; inStatName: ConstCStringPtr; inStatNameLength: UInt32): OSErr; external name '_QTSInsertStatisticName';
  1344. {
  1345. * QTSInsertStatisticUnits()
  1346. *
  1347. * Availability:
  1348. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1349. * CarbonLib: in CarbonLib 1.1 and later
  1350. * Mac OS X: in version 10.0 and later
  1351. * Windows: in QTSClient.lib 4.0 and later
  1352. }
  1353. function QTSInsertStatisticUnits(inContainer: QTAtomContainer; inParentAtom: QTAtom; inStatType: OSType; inUnitsType: OSType; inUnitsName: ConstCStringPtr; inUnitsNameLength: UInt32): OSErr; external name '_QTSInsertStatisticUnits';
  1354. {============================================================================
  1355. Data Formats
  1356. ============================================================================}
  1357. {-----------------------------------------
  1358. Data Types
  1359. -----------------------------------------}
  1360. { universal data types }
  1361. const
  1362. kQTSNullDataType = $4E554C4C (* 'NULL' *);
  1363. kQTSUnknownDataType = $6875683F (* 'huh?' *);
  1364. kQTSAtomContainerDataType = $71746163 (* 'qtac' *); { QTAtomContainer }
  1365. kQTSAtomDataType = $71746174 (* 'qtat' *); { QTSAtomContainerDataStruct* }
  1366. kQTSAliasDataType = $616C6973 (* 'alis' *);
  1367. kQTSFileDataType = $66737063 (* 'fspc' *); { FSSpec* }
  1368. kQTSFileSpecDataType = $66737063 (* 'fspc' *); { FSSpec* }
  1369. kQTSHandleDataType = $686E646C (* 'hndl' *); { Handle* }
  1370. kQTSDataRefDataType = $64726566 (* 'dref' *); { DataReferencePtr }
  1371. { these data types are specific to presentations }
  1372. kQTSRTSPDataType = $72747370 (* 'rtsp' *);
  1373. kQTSSDPDataType = $73647020 (* 'sdp ' *);
  1374. { -----------------------------------------
  1375. Atom IDs
  1376. ----------------------------------------- }
  1377. kQTSAtomType_Presentation = $70726573 (* 'pres' *);
  1378. kQTSAtomType_PresentationHeader = $70686472 (* 'phdr' *); { QTSPresentationHeaderAtom }
  1379. kQTSAtomType_MediaStream = $6D737472 (* 'mstr' *);
  1380. kQTSAtomType_MediaStreamHeader = $6D736864 (* 'mshd' *); { QTSMediaStreamHeaderAtom }
  1381. kQTSAtomType_MediaDescriptionText = $6D646573 (* 'mdes' *); { chars, no length }
  1382. kQTSAtomType_ClipRect = $636C6970 (* 'clip' *); { QTSClipRectAtom }
  1383. kQTSAtomType_Duration = $64757261 (* 'dura' *); { QTSDurationAtom }
  1384. kQTSAtomType_BufferTime = $62756672 (* 'bufr' *); { QTSBufferTimeAtom }
  1385. type
  1386. QTSAtomContainerDataStructPtr = ^QTSAtomContainerDataStruct;
  1387. QTSAtomContainerDataStruct = record
  1388. container: QTAtomContainer;
  1389. parentAtom: QTAtom;
  1390. end;
  1391. { flags for QTSPresentationHeaderAtom }
  1392. const
  1393. kQTSPresHeaderTypeIsData = $00000100;
  1394. kQTSPresHeaderDataIsHandle = $00000200;
  1395. type
  1396. QTSPresentationHeaderAtomPtr = ^QTSPresentationHeaderAtom;
  1397. QTSPresentationHeaderAtom = record
  1398. versionAndFlags: SInt32;
  1399. conductorOrDataType: OSType;
  1400. dataAtomType: OSType; { where the data really is }
  1401. end;
  1402. QTSMediaStreamHeaderAtomPtr = ^QTSMediaStreamHeaderAtom;
  1403. QTSMediaStreamHeaderAtom = record
  1404. versionAndFlags: SInt32;
  1405. mediaTransportType: OSType;
  1406. mediaTransportDataAID: OSType; { where the data really is }
  1407. end;
  1408. QTSBufferTimeAtomPtr = ^QTSBufferTimeAtom;
  1409. QTSBufferTimeAtom = record
  1410. versionAndFlags: SInt32;
  1411. bufferTime: Fixed;
  1412. end;
  1413. QTSDurationAtomPtr = ^QTSDurationAtom;
  1414. QTSDurationAtom = record
  1415. versionAndFlags: SInt32;
  1416. timeScale: TimeScale_fix;
  1417. duration: TimeValue64;
  1418. end;
  1419. QTSClipRectAtomPtr = ^QTSClipRectAtom;
  1420. QTSClipRectAtom = record
  1421. versionAndFlags: SInt32;
  1422. clipRect: Rect;
  1423. end;
  1424. const
  1425. kQTSEmptyEditStreamStartTime = -1;
  1426. type
  1427. QTSStatus = UInt32;
  1428. const
  1429. kQTSNullStatus = 0;
  1430. kQTSUninitializedStatus = 1;
  1431. kQTSConnectingStatus = 2;
  1432. kQTSOpeningConnectionDetailedStatus = 3;
  1433. kQTSMadeConnectionDetailedStatus = 4;
  1434. kQTSNegotiatingStatus = 5;
  1435. kQTSGettingDescriptionDetailedStatus = 6;
  1436. kQTSGotDescriptionDetailedStatus = 7;
  1437. kQTSSentSetupCmdDetailedStatus = 8;
  1438. kQTSReceivedSetupResponseDetailedStatus = 9;
  1439. kQTSSentPlayCmdDetailedStatus = 10;
  1440. kQTSReceivedPlayResponseDetailedStatus = 11;
  1441. kQTSBufferingStatus = 12;
  1442. kQTSPlayingStatus = 13;
  1443. kQTSPausedStatus = 14;
  1444. kQTSAutoConfiguringStatus = 15;
  1445. kQTSDownloadingStatus = 16;
  1446. kQTSBufferingWithTimeStatus = 17;
  1447. kQTSWaitingDisconnectStatus = 100;
  1448. { -----------------------------------------
  1449. QuickTime Preferences Types
  1450. ----------------------------------------- }
  1451. kQTSConnectionPrefsType = $7374636D (* 'stcm' *); { root atom that all other atoms are contained in }
  1452. { kQTSNotUsedForProxyPrefsType = 'nopr', // comma-delimited list of URLs that are never used for proxies }
  1453. kQTSConnectionMethodPrefsType = $6D746864 (* 'mthd' *); { connection method (OSType that matches one of the following three) }
  1454. kQTSDirectConnectPrefsType = $64726374 (* 'drct' *); { used if direct connect (QTSDirectConnectPrefsRecord) }
  1455. { kQTSRTSPProxyPrefsType = 'rtsp', // used if RTSP Proxy (QTSProxyPrefsRecord) }
  1456. kQTSSOCKSPrefsType = $736F636B (* 'sock' *); { used if SOCKS Proxy (QTSProxyPrefsRecord) }
  1457. kQTSDirectConnectHTTPProtocol = $68747470 (* 'http' *);
  1458. kQTSDirectConnectRTSPProtocol = $72747370 (* 'rtsp' *);
  1459. type
  1460. QTSDirectConnectPrefsRecordPtr = ^QTSDirectConnectPrefsRecord;
  1461. QTSDirectConnectPrefsRecord = record
  1462. tcpPortID: UInt32;
  1463. protocol: OSType;
  1464. end;
  1465. QTSProxyPrefsRecordPtr = ^QTSProxyPrefsRecord;
  1466. QTSProxyPrefsRecord = record
  1467. serverNameStr: Str255;
  1468. portID: UInt32;
  1469. end;
  1470. const
  1471. kConnectionActive = $00000001;
  1472. kConnectionUseSystemPref = $00000002;
  1473. type
  1474. QTSTransportPrefPtr = ^QTSTransportPref;
  1475. QTSTransportPref = record
  1476. protocol: OSType; { udp, http, tcp, etc }
  1477. portID: SInt32; { port to use for this connection type }
  1478. flags: UInt32; { connection flags }
  1479. seed: UInt32; { seed value last time this setting was read from system prefs }
  1480. end;
  1481. const
  1482. kProxyActive = $00000001;
  1483. kProxyUseSystemPref = $00000002;
  1484. type
  1485. QTSProxyPrefPtr = ^QTSProxyPref;
  1486. QTSProxyPref = record
  1487. flags: UInt32; { proxy flags }
  1488. portID: SInt32; { port to use for this connection type }
  1489. seed: UInt32; { seed value last time this setting was read from system prefs }
  1490. serverNameStr: Str255; { proxy server url }
  1491. end;
  1492. const
  1493. kNoProxyUseSystemPref = $00000001;
  1494. type
  1495. QTSNoProxyPrefPtr = ^QTSNoProxyPref;
  1496. QTSNoProxyPref = record
  1497. flags: UInt32; { no-proxy flags }
  1498. seed: UInt32; { seed value last time this setting was read from system prefs }
  1499. urlList: SInt8; { NULL terminated, comma delimited list of urls }
  1500. end;
  1501. const
  1502. kQTSInstantOnFlag_Enable = $00000001; { instant on is enabled (read/write) }
  1503. kQTSInstantOnFlag_Permitted = $00000002; { instant on is possible (read only) }
  1504. type
  1505. QTSInstantOnPrefPtr = ^QTSInstantOnPref;
  1506. QTSInstantOnPref = record
  1507. flags: SInt32; { flags }
  1508. factor: SInt32; { 0-100; default is 50 }
  1509. end;
  1510. const
  1511. kQTSTransAndProxyAtomType = $73747270 (* 'strp' *); { transport/proxy prefs root atom }
  1512. kQTSConnectionPrefsVersion = $76657273 (* 'vers' *); { prefs format version }
  1513. kQTSTransportPrefsAtomType = $74726E73 (* 'trns' *); { tranport prefs root atom }
  1514. kQTSConnectionAtomType = $636F6E6E (* 'conn' *); { connection prefs atom type, one for each transport type }
  1515. kQTSUDPTransportType = $75647020 (* 'udp ' *); { udp transport prefs }
  1516. kQTSHTTPTransportType = $68747470 (* 'http' *); { http transport prefs }
  1517. kQTSTCPTransportType = $74637020 (* 'tcp ' *); { tcp transport prefs }
  1518. kQTSProxyPrefsAtomType = $70727879 (* 'prxy' *); { proxy prefs root atom }
  1519. kQTSHTTPProxyPrefsType = $68747470 (* 'http' *); { http proxy settings }
  1520. kQTSRTSPProxyPrefsType = $72747370 (* 'rtsp' *); { rtsp proxy settings }
  1521. kQTSSOCKSProxyPrefsType = $736F636B (* 'sock' *); { socks proxy settings }
  1522. kQTSProxyUserInfoPrefsType = $75736572 (* 'user' *); { proxy username/password root atom }
  1523. kQTSDontProxyPrefsAtomType = $6E6F7072 (* 'nopr' *); { no-proxy prefs root atom }
  1524. kQTSDontProxyDataType = $64617461 (* 'data' *); { no proxy settings }
  1525. kQTSInstantOnPrefsAtomType = $696E6F6E (* 'inon' *); { instant on prefs }
  1526. {
  1527. * QTSPrefsAddProxySetting()
  1528. *
  1529. * Availability:
  1530. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1531. * CarbonLib: in CarbonLib 1.1 and later
  1532. * Mac OS X: in version 10.0 and later
  1533. * Windows: in QTSClient.lib 4.1 and later
  1534. }
  1535. function QTSPrefsAddProxySetting(proxyType: OSType; portID: SInt32; flags: UInt32; seed: UInt32; var srvrURL: Str255): OSErr; external name '_QTSPrefsAddProxySetting';
  1536. {
  1537. * QTSPrefsFindProxyByType()
  1538. *
  1539. * Availability:
  1540. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1541. * CarbonLib: in CarbonLib 1.1 and later
  1542. * Mac OS X: in version 10.0 and later
  1543. * Windows: in QTSClient.lib 4.1 and later
  1544. }
  1545. function QTSPrefsFindProxyByType(proxyType: OSType; flags: UInt32; flagsMask: UInt32; var proxyHndl: UnivPtr; var count: SInt16): OSErr; external name '_QTSPrefsFindProxyByType';
  1546. {
  1547. * QTSPrefsAddConnectionSetting()
  1548. *
  1549. * Availability:
  1550. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1551. * CarbonLib: in CarbonLib 1.1 and later
  1552. * Mac OS X: in version 10.0 and later
  1553. * Windows: in QTSClient.lib 4.1 and later
  1554. }
  1555. function QTSPrefsAddConnectionSetting(protocol: OSType; portID: SInt32; flags: UInt32; seed: UInt32): OSErr; external name '_QTSPrefsAddConnectionSetting';
  1556. {
  1557. * QTSPrefsFindConnectionByType()
  1558. *
  1559. * Availability:
  1560. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1561. * CarbonLib: in CarbonLib 1.1 and later
  1562. * Mac OS X: in version 10.0 and later
  1563. * Windows: in QTSClient.lib 4.1 and later
  1564. }
  1565. function QTSPrefsFindConnectionByType(protocol: OSType; flags: UInt32; flagsMask: UInt32; var connectionHndl: UnivPtr; var count: SInt16): OSErr; external name '_QTSPrefsFindConnectionByType';
  1566. {
  1567. * QTSPrefsGetActiveConnection()
  1568. *
  1569. * Availability:
  1570. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1571. * CarbonLib: in CarbonLib 1.1 and later
  1572. * Mac OS X: in version 10.0 and later
  1573. * Windows: in QTSClient.lib 4.1 and later
  1574. }
  1575. function QTSPrefsGetActiveConnection(protocol: OSType; var connectInfo: QTSTransportPref): OSErr; external name '_QTSPrefsGetActiveConnection';
  1576. {
  1577. * QTSPrefsGetNoProxyURLs()
  1578. *
  1579. * Availability:
  1580. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1581. * CarbonLib: in CarbonLib 1.1 and later
  1582. * Mac OS X: in version 10.0 and later
  1583. * Windows: in QTSClient.lib 4.1 and later
  1584. }
  1585. function QTSPrefsGetNoProxyURLs(var noProxyHndl: UnivPtr): OSErr; external name '_QTSPrefsGetNoProxyURLs';
  1586. {
  1587. * QTSPrefsSetNoProxyURLs()
  1588. *
  1589. * Availability:
  1590. * Non-Carbon CFM: in QTStreamLib 4.1 and later
  1591. * CarbonLib: in CarbonLib 1.1 and later
  1592. * Mac OS X: in version 10.0 and later
  1593. * Windows: in QTSClient.lib 4.1 and later
  1594. }
  1595. function QTSPrefsSetNoProxyURLs(urls: CStringPtr; flags: UInt32; seed: UInt32): OSErr; external name '_QTSPrefsSetNoProxyURLs';
  1596. {
  1597. * QTSPrefsAddProxyUserInfo()
  1598. *
  1599. * Availability:
  1600. * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
  1601. * CarbonLib: in CarbonLib 1.6 and later
  1602. * Mac OS X: in version 10.1 and later
  1603. * Windows: in QTSClient.lib 5.0.1 and later
  1604. }
  1605. function QTSPrefsAddProxyUserInfo(proxyType: OSType; flags: SInt32; flagsMask: SInt32; username: StringPtr; password: StringPtr): OSErr; external name '_QTSPrefsAddProxyUserInfo';
  1606. {
  1607. * QTSPrefsFindProxyUserInfoByType()
  1608. *
  1609. * Availability:
  1610. * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
  1611. * CarbonLib: in CarbonLib 1.6 and later
  1612. * Mac OS X: in version 10.1 and later
  1613. * Windows: in QTSClient.lib 5.0.1 and later
  1614. }
  1615. function QTSPrefsFindProxyUserInfoByType(proxyType: OSType; flags: SInt32; flagsMask: SInt32; username: StringPtr; password: StringPtr): OSErr; external name '_QTSPrefsFindProxyUserInfoByType';
  1616. {
  1617. * QTSPrefsGetInstantOnSettings()
  1618. *
  1619. * Availability:
  1620. * Non-Carbon CFM: in QTStreamLib 6.0 and later
  1621. * CarbonLib: in CarbonLib 1.6 and later
  1622. * Mac OS X: in version 10.2 and later
  1623. * Windows: in QTSClient.lib 6.0 and later
  1624. }
  1625. function QTSPrefsGetInstantOnSettings(var outPref: QTSInstantOnPref; inFlags: SInt32): OSErr; external name '_QTSPrefsGetInstantOnSettings';
  1626. {
  1627. * QTSPrefsSetInstantOnSettings()
  1628. *
  1629. * Availability:
  1630. * Non-Carbon CFM: in QTStreamLib 6.0 and later
  1631. * CarbonLib: in CarbonLib 1.6 and later
  1632. * Mac OS X: in version 10.2 and later
  1633. * Windows: in QTSClient.lib 6.0 and later
  1634. }
  1635. function QTSPrefsSetInstantOnSettings(var inPref: QTSInstantOnPref; inFlags: SInt32): OSErr; external name '_QTSPrefsSetInstantOnSettings';
  1636. {============================================================================
  1637. Memory Management Services
  1638. ============================================================================}
  1639. {
  1640. These routines allocate normal pointers and handles,
  1641. but do the correct checking, etc.
  1642. Dispose using the normal DisposePtr and DisposeHandle
  1643. Call these routines for one time memory allocations.
  1644. You do not need to set any hints to use these calls.
  1645. }
  1646. {
  1647. * QTSNewPtr()
  1648. *
  1649. * Availability:
  1650. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1651. * CarbonLib: in CarbonLib 1.1 and later
  1652. * Mac OS X: in version 10.0 and later
  1653. * Windows: in QTSClient.lib 4.0 and later
  1654. }
  1655. function QTSNewPtr(inByteCount: UInt32; inFlags: SInt32; var outFlags: SInt32): Ptr; external name '_QTSNewPtr';
  1656. {
  1657. * QTSNewHandle()
  1658. *
  1659. * Availability:
  1660. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1661. * CarbonLib: in CarbonLib 1.1 and later
  1662. * Mac OS X: in version 10.0 and later
  1663. * Windows: in QTSClient.lib 4.0 and later
  1664. }
  1665. function QTSNewHandle(inByteCount: UInt32; inFlags: SInt32; var outFlags: SInt32): Handle; external name '_QTSNewHandle';
  1666. { flags in }
  1667. const
  1668. kQTSMemAllocClearMem = $00000001;
  1669. kQTSMemAllocDontUseTempMem = $00000002;
  1670. kQTSMemAllocTryTempMemFirst = $00000004;
  1671. kQTSMemAllocDontUseSystemMem = $00000008;
  1672. kQTSMemAllocTrySystemMemFirst = $00000010;
  1673. kQTSMemAllocHoldMemory = $00001000;
  1674. kQTSMemAllocIsInterruptTime = $01010000; { currently not supported for alloc }
  1675. { flags out }
  1676. kQTSMemAllocAllocatedInTempMem = $00000001;
  1677. kQTSMemAllocAllocatedInSystemMem = $00000002;
  1678. type
  1679. QTSMemPtr = ^SInt32; { an opaque 32-bit type }
  1680. QTSMemPtrPtr = ^QTSMemPtr; { when a var xx:QTSMemPtr parameter can be nil, it is changed to xx: QTSMemPtrPtr }
  1681. {
  1682. These routines are for buffers that will be recirculated
  1683. you must use QTReleaseMemPtr instead of DisposePtr
  1684. QTSReleaseMemPtr can be used at interrupt time
  1685. but QTSAllocMemPtr currently cannot
  1686. }
  1687. {
  1688. * QTSAllocMemPtr()
  1689. *
  1690. * Availability:
  1691. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1692. * CarbonLib: in CarbonLib 1.1 and later
  1693. * Mac OS X: in version 10.0 and later
  1694. * Windows: in QTSClient.lib 4.0 and later
  1695. }
  1696. function QTSAllocMemPtr(inByteCount: UInt32; inFlags: SInt32): QTSMemPtr; external name '_QTSAllocMemPtr';
  1697. {
  1698. * QTSReleaseMemPtr()
  1699. *
  1700. * Availability:
  1701. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1702. * CarbonLib: in CarbonLib 1.1 and later
  1703. * Mac OS X: in version 10.0 and later
  1704. * Windows: in QTSClient.lib 4.0 and later
  1705. }
  1706. procedure QTSReleaseMemPtr(inMemPtr: QTSMemPtr; inFlags: SInt32); external name '_QTSReleaseMemPtr';
  1707. {============================================================================
  1708. Buffer Management Services
  1709. ============================================================================}
  1710. const
  1711. kQTSStreamBufferVersion1 = 1;
  1712. type
  1713. QTSStreamBufferPtr = ^QTSStreamBuffer;
  1714. QTSStreamBuffer = record
  1715. reserved1: QTSStreamBufferPtr;
  1716. reserved2: QTSStreamBufferPtr;
  1717. next: QTSStreamBufferPtr; { next message block in a message }
  1718. rptr: Ptr; { first byte with real data in the DataBuffer }
  1719. wptr: Ptr; { last+1 byte with real data in the DataBuffer }
  1720. version: SInt32;
  1721. metadata: array [0..3] of UInt32; { usage defined by message sender }
  1722. flags: SInt32; { reserved }
  1723. reserved3: SInt32;
  1724. reserved4: SInt32;
  1725. reserved5: SInt32;
  1726. moreMeta: array [0..7] of UInt32;
  1727. end;
  1728. { flags for QTSDuplicateMessage }
  1729. const
  1730. kQTSDuplicateBufferFlag_CopyData = $00000001;
  1731. kQTSDuplicateBufferFlag_FlattenMessage = $00000002;
  1732. {
  1733. * QTSNewStreamBuffer()
  1734. *
  1735. * Availability:
  1736. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1737. * CarbonLib: in CarbonLib 1.3 and later
  1738. * Mac OS X: in version 10.0 and later
  1739. * Windows: in QTSClient.lib 5.0 and later
  1740. }
  1741. function QTSNewStreamBuffer(inDataSize: UInt32; inFlags: SInt32; var outStreamBuffer: UnivPtr): OSErr; external name '_QTSNewStreamBuffer';
  1742. {
  1743. * QTSFreeMessage()
  1744. *
  1745. * Availability:
  1746. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1747. * CarbonLib: in CarbonLib 1.1 and later
  1748. * Mac OS X: in version 10.0 and later
  1749. * Windows: in QTSClient.lib 4.0 and later
  1750. }
  1751. procedure QTSFreeMessage(var inMessage: QTSStreamBuffer); external name '_QTSFreeMessage';
  1752. {
  1753. kQTSDuplicateBufferFlag_CopyData - forces a copy of the data itself
  1754. kQTSCopyBufferFlag_FlattenMessage - copies the data if it needs to be flattened
  1755. QTSDuplicateMessage never frees the old message
  1756. }
  1757. {
  1758. * QTSDuplicateMessage()
  1759. *
  1760. * Availability:
  1761. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1762. * CarbonLib: in CarbonLib 1.3 and later
  1763. * Mac OS X: in version 10.0 and later
  1764. * Windows: in QTSClient.lib 5.0 and later
  1765. }
  1766. function QTSDuplicateMessage(var inMessage: QTSStreamBuffer; inFlags: SInt32; var outDuplicatedMessage: UnivPtr): OSErr; external name '_QTSDuplicateMessage';
  1767. {
  1768. * QTSMessageLength()
  1769. *
  1770. * Availability:
  1771. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1772. * CarbonLib: in CarbonLib 1.1 and later
  1773. * Mac OS X: in version 10.0 and later
  1774. * Windows: in QTSClient.lib 4.0 and later
  1775. }
  1776. function QTSMessageLength(var inMessage: QTSStreamBuffer): UInt32; external name '_QTSMessageLength';
  1777. {
  1778. * QTSStreamBufferDataInfo()
  1779. *
  1780. * Availability:
  1781. * Non-Carbon CFM: in QTStreamLib 5.0 and later
  1782. * CarbonLib: in CarbonLib 1.3 and later
  1783. * Mac OS X: in version 10.0 and later
  1784. * Windows: in QTSClient.lib 5.0 and later
  1785. }
  1786. procedure QTSStreamBufferDataInfo(var inStreamBuffer: QTSStreamBuffer; var outDataStart: UnivPtr; var outDataMaxLength: UInt32); external name '_QTSStreamBufferDataInfo';
  1787. { ---- old calls (don't use these) }
  1788. {
  1789. * QTSAllocBuffer()
  1790. *
  1791. * Availability:
  1792. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1793. * CarbonLib: in CarbonLib 1.1 and later
  1794. * Mac OS X: in version 10.0 and later
  1795. * Windows: in QTSClient.lib 4.0 and later
  1796. }
  1797. function QTSAllocBuffer(inSize: SInt32): QTSStreamBufferPtr; external name '_QTSAllocBuffer';
  1798. {
  1799. * QTSDupMessage()
  1800. *
  1801. * Availability:
  1802. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1803. * CarbonLib: in CarbonLib 1.1 and later
  1804. * Mac OS X: in version 10.0 and later
  1805. * Windows: in QTSClient.lib 4.0 and later
  1806. }
  1807. function QTSDupMessage(var inMessage: QTSStreamBuffer): QTSStreamBufferPtr; external name '_QTSDupMessage';
  1808. {
  1809. * QTSCopyMessage()
  1810. *
  1811. * Availability:
  1812. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1813. * CarbonLib: in CarbonLib 1.1 and later
  1814. * Mac OS X: in version 10.0 and later
  1815. * Windows: in QTSClient.lib 4.0 and later
  1816. }
  1817. function QTSCopyMessage(var inMessage: QTSStreamBuffer): QTSStreamBufferPtr; external name '_QTSCopyMessage';
  1818. {
  1819. * QTSFlattenMessage()
  1820. *
  1821. * Availability:
  1822. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1823. * CarbonLib: in CarbonLib 1.1 and later
  1824. * Mac OS X: in version 10.0 and later
  1825. * Windows: in QTSClient.lib 4.0 and later
  1826. }
  1827. function QTSFlattenMessage(var inMessage: QTSStreamBuffer): QTSStreamBufferPtr; external name '_QTSFlattenMessage';
  1828. {============================================================================
  1829. Misc
  1830. ============================================================================}
  1831. {
  1832. * QTSGetErrorString()
  1833. *
  1834. * Availability:
  1835. * Non-Carbon CFM: in QTStreamLib 4.0 and later
  1836. * CarbonLib: in CarbonLib 1.1 and later
  1837. * Mac OS X: in version 10.0 and later
  1838. * Windows: in QTSClient.lib 4.0 and later
  1839. }
  1840. function QTSGetErrorString(inErrorCode: SInt32; inMaxErrorStringLength: UInt32; outErrorString: CStringPtr; inFlags: SInt32): boolean; external name '_QTSGetErrorString';
  1841. {
  1842. * QTSInitializeMediaParams()
  1843. *
  1844. * Availability:
  1845. * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
  1846. * CarbonLib: in CarbonLib 1.6 and later
  1847. * Mac OS X: in version 10.1 and later
  1848. * Windows: in QTSClient.lib 5.0.1 and later
  1849. }
  1850. function QTSInitializeMediaParams(var inMediaParams: QTSMediaParams): OSErr; external name '_QTSInitializeMediaParams';
  1851. { UPP call backs }
  1852. const
  1853. uppQTSNotificationProcInfo = $00003FF0;
  1854. uppQTSPanelFilterProcInfo = $000003D0;
  1855. uppQTSModalFilterProcInfo = $00003FD0;
  1856. {
  1857. * NewQTSNotificationUPP()
  1858. *
  1859. * Availability:
  1860. * Non-Carbon CFM: available as macro/inline
  1861. * CarbonLib: in CarbonLib 1.3 and later
  1862. * Mac OS X: in version 10.0 and later
  1863. }
  1864. function NewQTSNotificationUPP(userRoutine: QTSNotificationProcPtr): QTSNotificationUPP; external name '_NewQTSNotificationUPP'; { old name was NewQTSNotificationProc }
  1865. {
  1866. * NewQTSPanelFilterUPP()
  1867. *
  1868. * Availability:
  1869. * Non-Carbon CFM: available as macro/inline
  1870. * CarbonLib: in CarbonLib 1.6 and later
  1871. * Mac OS X: in version 10.1 and later
  1872. }
  1873. function NewQTSPanelFilterUPP(userRoutine: QTSPanelFilterProcPtr): QTSPanelFilterUPP; external name '_NewQTSPanelFilterUPP'; { old name was NewQTSPanelFilterProc }
  1874. {
  1875. * NewQTSModalFilterUPP()
  1876. *
  1877. * Availability:
  1878. * Non-Carbon CFM: available as macro/inline
  1879. * CarbonLib: in CarbonLib 1.3 and later
  1880. * Mac OS X: in version 10.0 and later
  1881. }
  1882. function NewQTSModalFilterUPP(userRoutine: QTSModalFilterProcPtr): QTSModalFilterUPP; external name '_NewQTSModalFilterUPP'; { old name was NewQTSModalFilterProc }
  1883. {
  1884. * DisposeQTSNotificationUPP()
  1885. *
  1886. * Availability:
  1887. * Non-Carbon CFM: available as macro/inline
  1888. * CarbonLib: in CarbonLib 1.3 and later
  1889. * Mac OS X: in version 10.0 and later
  1890. }
  1891. procedure DisposeQTSNotificationUPP(userUPP: QTSNotificationUPP); external name '_DisposeQTSNotificationUPP';
  1892. {
  1893. * DisposeQTSPanelFilterUPP()
  1894. *
  1895. * Availability:
  1896. * Non-Carbon CFM: available as macro/inline
  1897. * CarbonLib: in CarbonLib 1.6 and later
  1898. * Mac OS X: in version 10.1 and later
  1899. }
  1900. procedure DisposeQTSPanelFilterUPP(userUPP: QTSPanelFilterUPP); external name '_DisposeQTSPanelFilterUPP';
  1901. {
  1902. * DisposeQTSModalFilterUPP()
  1903. *
  1904. * Availability:
  1905. * Non-Carbon CFM: available as macro/inline
  1906. * CarbonLib: in CarbonLib 1.3 and later
  1907. * Mac OS X: in version 10.0 and later
  1908. }
  1909. procedure DisposeQTSModalFilterUPP(userUPP: QTSModalFilterUPP); external name '_DisposeQTSModalFilterUPP';
  1910. {
  1911. * InvokeQTSNotificationUPP()
  1912. *
  1913. * Availability:
  1914. * Non-Carbon CFM: available as macro/inline
  1915. * CarbonLib: in CarbonLib 1.3 and later
  1916. * Mac OS X: in version 10.0 and later
  1917. }
  1918. function InvokeQTSNotificationUPP(inErr: ComponentResult; inNotificationType: OSType; inNotificationParams: UnivPtr; inRefCon: UnivPtr; userRoutine: QTSNotificationUPP): ComponentResult; external name '_InvokeQTSNotificationUPP'; { old name was CallQTSNotificationProc }
  1919. {
  1920. * InvokeQTSPanelFilterUPP()
  1921. *
  1922. * Availability:
  1923. * Non-Carbon CFM: available as macro/inline
  1924. * CarbonLib: in CarbonLib 1.6 and later
  1925. * Mac OS X: in version 10.1 and later
  1926. }
  1927. function InvokeQTSPanelFilterUPP(var inParams: QTSPanelFilterParams; inRefCon: UnivPtr; userRoutine: QTSPanelFilterUPP): boolean; external name '_InvokeQTSPanelFilterUPP'; { old name was CallQTSPanelFilterProc }
  1928. {
  1929. * InvokeQTSModalFilterUPP()
  1930. *
  1931. * Availability:
  1932. * Non-Carbon CFM: available as macro/inline
  1933. * CarbonLib: in CarbonLib 1.3 and later
  1934. * Mac OS X: in version 10.0 and later
  1935. }
  1936. function InvokeQTSModalFilterUPP(inDialog: DialogPtr; const (*var*) inEvent: EventRecord; var ioItemHit: SInt16; inRefCon: UnivPtr; userRoutine: QTSModalFilterUPP): boolean; external name '_InvokeQTSModalFilterUPP'; { old name was CallQTSModalFilterProc }
  1937. {$ALIGN MAC68K}
  1938. end.