MMRegs.pas 71 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523
  1. {========================================================================}
  2. {= (c) 1995-98 SwiftSoft Ronald Dittrich =}
  3. {========================================================================}
  4. {= All Rights Reserved =}
  5. {========================================================================}
  6. {= D 01099 Dresden = Tel.: +0351-8012255 =}
  7. {= Loewenstr.7a = info@swiftsoft.de =}
  8. {========================================================================}
  9. {= Actual versions on http://www.swiftsoft.de/mmtools.html =}
  10. {========================================================================}
  11. {= This code is for reference purposes only and may not be copied or =}
  12. {= distributed in any format electronic or otherwise except one copy =}
  13. {= for backup purposes. =}
  14. {= =}
  15. {= No Delphi Component Kit or Component individually or in a collection=}
  16. {= subclassed or otherwise from the code in this unit, or associated =}
  17. {= .pas, .dfm, .dcu, .asm or .obj files may be sold or distributed =}
  18. {= without express permission from SwiftSoft. =}
  19. {= =}
  20. {= For more licence informations please refer to the associated =}
  21. {= HelpFile. =}
  22. {========================================================================}
  23. {= $Date: 18.02.98 - 04:25:47 $ =}
  24. {========================================================================}
  25. unit MMRegs;
  26. {$I COMPILER.INC}
  27. interface
  28. uses
  29. {$IFDEF WIN32}
  30. Windows,
  31. {$ELSE}
  32. WinTypes,
  33. {$ENDIF}
  34. MMSystem;
  35. { Define the following to skip definitions }
  36. {.$DEFINE NOMMIDS } { Multimedia IDs are not defined }
  37. {.$DEFINE NONEWWAVE} { No new waveform types except WAVEFORMATEX }
  38. {$DEFINE NONEWRIFF} { No new RIFF forms are defined }
  39. {$DEFINE NONEWRIFFINFO}{ No new RIFF INFO forms are defined }
  40. {$DEFINE NOJPEGDIB} { No JPEG DIB definitions }
  41. {$DEFINE NONEWIC } { No new Image Compressor types are defined }
  42. {$DEFINE NOBITMAP } { No extended bitmap info header definition }
  43. const
  44. {$IFDEF CBUILDER3} {$EXTERNALSYM WAVE_MAPPER} {$ENDIF}
  45. WAVE_MAPPER = $FFFFFFFF; { -1 }
  46. {$IFNDEF NOMMIDS}
  47. { manufacturer IDs }
  48. const
  49. MM_MICROSOFT = 1; { Microsoft Corporation }
  50. MM_CREATIVE = 2; { Creative Labs, Inc }
  51. MM_MEDIAVISION = 3; { Media Vision, Inc. }
  52. MM_FUJITSU = 4; { Fujitsu Corp. }
  53. MM_ARTISOFT = 20; { Artisoft, Inc. }
  54. MM_TURTLE_BEACH = 21; { Turtle Beach, Inc. }
  55. MM_IBM = 22; { IBM Corporation }
  56. MM_VOCALTEC = 23; { Vocaltec LTD. }
  57. MM_ROLAND = 24; { Roland }
  58. MM_DSP_SOLUTIONS = 25; { DSP Solutions, Inc. }
  59. MM_NEC = 26; { NEC }
  60. MM_ATI = 27; { ATI }
  61. MM_WANGLABS = 28; { Wang Laboratories, Inc }
  62. MM_TANDY = 29; { Tandy Corporation }
  63. MM_VOYETRA = 30; { Voyetra }
  64. MM_ANTEX = 31; { Antex Electronics Corporation }
  65. MM_ICL_PS = 32; { ICL Personal Systems }
  66. MM_INTEL = 33; { Intel Corporation }
  67. MM_GRAVIS = 34; { Advanced Gravis }
  68. MM_VAL = 35; { Video Associates Labs, Inc. }
  69. MM_INTERACTIVE = 36; { InterActive Inc }
  70. MM_YAMAHA = 37; { Yamaha Corporation of America }
  71. MM_EVEREX = 38; { Everex Systems, Inc }
  72. MM_ECHO = 39; { Echo Speech Corporation }
  73. MM_SIERRA = 40; { Sierra Semiconductor Corp }
  74. MM_CAT = 41; { Computer Aided Technologies }
  75. MM_APPS = 42; { APPS Software International }
  76. MM_DSP_GROUP = 43; { DSP Group, Inc }
  77. MM_MELABS = 44; { microEngineering Labs }
  78. MM_COMPUTER_FRIENDS = 45; { Computer Friends, Inc. }
  79. MM_ESS = 46; { ESS Technology }
  80. MM_AUDIOFILE = 47; { Audio, Inc. }
  81. MM_MOTOROLA = 48; { Motorola, Inc. }
  82. MM_CANOPUS = 49; { Canopus, co., Ltd. }
  83. MM_EPSON = 50; { Seiko Epson Corporation }
  84. MM_TRUEVISION = 51; { Truevision }
  85. MM_AZTECH = 52; { Aztech Labs, Inc. }
  86. MM_VIDEOLOGIC = 53; { Videologic }
  87. MM_SCALACS = 54; { SCALACS }
  88. MM_KORG = 55; { Toshihiko Okuhura, Korg Inc. }
  89. MM_APT = 56; { Audio Processing Technology }
  90. MM_ICS = 57; { Integrated Circuit Systems, Inc. }
  91. MM_ITERATEDSYS = 58; { Iterated Systems, Inc. }
  92. MM_METHEUS = 59; { Metheus }
  93. MM_LOGITECH = 60; { Logitech, Inc. }
  94. MM_WINNOV = 61; { Winnov, Inc. }
  95. MM_NCR = 62; { NCR Corporation }
  96. MM_EXAN = 63; { EXAN }
  97. MM_AST = 64; { AST Research Inc. }
  98. MM_WILLOWPOND = 65; { Willow Pond Corporation }
  99. MM_SONICFOUNDRY = 66; { Sonic Foundry }
  100. MM_VITEC = 67; { Vitec Multimedia }
  101. MM_MOSCOM = 68; { MOSCOM Corporation }
  102. MM_SILICONSOFT = 69; { Silicon Soft, Inc. }
  103. MM_SUPERMAC = 73; { Supermac }
  104. MM_AUDIOPT = 74; { Audio Processing Technology }
  105. MM_SPEECHCOMP = 76; { Speech Compression }
  106. MM_DOLBY = 78; { Dolby Laboratories }
  107. MM_OKI = 79; { OKI }
  108. MM_AURAVISION = 80; { AuraVision Corporation }
  109. MM_OLIVETTI = 81; { Olivetti }
  110. MM_IOMAGIC = 82; { I/O Magic Corporation }
  111. MM_MATSUSHITA = 83; { Matsushita Electric Industrial Co., LTD.}
  112. MM_CONTROLRES = 84; { Control Resources Limited }
  113. MM_XEBEC = 85; { Xebec Multimedia Solutions Limited }
  114. MM_NEWMEDIA = 86; { New Media Corporation }
  115. MM_NMS = 87; { Natural MicroSystems }
  116. MM_LYRRUS = 88; { Lyrrus Inc. }
  117. MM_COMPUSIC = 89; { Compusic }
  118. MM_OPTI = 90; { OPTi Computers Inc. }
  119. MM_DIALOGIC = 93; { Dialogic Corporation }
  120. const
  121. { MM_MICROSOFT product IDs }
  122. MM_PCSPEAKER_WAVEOUT = 13; { PC speaker waveform output }
  123. MM_MSFT_WSS_WAVEIN = 14; { MS Audio Board waveform input }
  124. MM_MSFT_WSS_WAVEOUT = 15; { MS Audio Board waveform output }
  125. MM_MSFT_WSS_FMSYNTH_STEREO = 16; { MS Audio Board Stereo FM synth}
  126. MM_MSFT_WSS_MIXER = 17; { MS Audio Board Mixer Driver }
  127. MM_MSFT_WSS_OEM_WAVEIN = 18; { MS OEM Audio Board waveform input}
  128. MM_MSFT_WSS_OEM_WAVEOUT = 19; { MS OEM Audio Board waveform output}
  129. MM_MSFT_WSS_OEM_FMSYNTH_STEREO = 20; { MS OEM Audio Board Stereo FM Synth}
  130. MM_MSFT_WSS_AUX = 21; { MS Audio Board Aux. Port }
  131. MM_MSFT_WSS_OEM_AUX = 22; { MS OEM Audio Aux Port }
  132. MM_MSFT_GENERIC_WAVEIN = 23; { MS Vanilla driver waveform input}
  133. MM_MSFT_GENERIC_WAVEOUT = 24; { MS Vanilla driver wavefrom output}
  134. MM_MSFT_GENERIC_MIDIIN = 25; { MS Vanilla driver MIDI in }
  135. MM_MSFT_GENERIC_MIDIOUT = 26; { MS Vanilla driver MIDI external out }
  136. MM_MSFT_GENERIC_MIDISYNTH = 27; { MS Vanilla driver MIDI synthesizer}
  137. MM_MSFT_GENERIC_AUX_LINE = 28; { MS Vanilla driver aux (line in)}
  138. MM_MSFT_GENERIC_AUX_MIC = 29; { MS Vanilla driver aux (mic) }
  139. MM_MSFT_GENERIC_AUX_CD = 30; { MS Vanilla driver aux (CD) }
  140. MM_MSFT_WSS_OEM_MIXER = 31; { MS OEM Audio Board Mixer Driver}
  141. MM_MSFT_MSACM = 32; { MS Audio Compression Manager }
  142. MM_MSFT_ACM_MSADPCM = 33; { MS ADPCM Codec }
  143. MM_MSFT_ACM_IMAADPCM = 34; { IMA ADPCM Codec }
  144. MM_MSFT_ACM_MSFILTER = 35; { MS Filter }
  145. MM_MSFT_ACM_GSM610 = 36; { GSM 610 codec }
  146. MM_MSFT_ACM_G711 = 37; { G.711 codec }
  147. MM_MSFT_ACM_PCM = 38; { PCM converter }
  148. { Microsoft Windows Sound System drivers }
  149. MM_WSS_SB16_WAVEIN = 39; { Sound Blaster 16 waveform input}
  150. MM_WSS_SB16_WAVEOUT = 40; { Sound Blaster 16 waveform output}
  151. MM_WSS_SB16_MIDIIN = 41; { Sound Blaster 16 midi-in }
  152. MM_WSS_SB16_MIDIOUT = 42; { Sound Blaster 16 midi out }
  153. MM_WSS_SB16_SYNTH = 43; { Sound Blaster 16 FM Synthesis }
  154. MM_WSS_SB16_AUX_LINE = 44; { Sound Blaster 16 aux (line in) }
  155. MM_WSS_SB16_AUX_CD = 45; { Sound Blaster 16 aux (CD) }
  156. MM_WSS_SB16_MIXER = 46; { Sound Blaster 16 mixer device }
  157. MM_WSS_SBPRO_WAVEIN = 47; { Sound Blaster Pro waveform input}
  158. MM_WSS_SBPRO_WAVEOUT = 48; { Sound Blaster Pro waveform output}
  159. MM_WSS_SBPRO_MIDIIN = 49; { Sound Blaster Pro midi in }
  160. MM_WSS_SBPRO_MIDIOUT = 50; { Sound Blaster Pro midi out }
  161. MM_WSS_SBPRO_SYNTH = 51; { Sound Blaster Pro FM synthesis }
  162. MM_WSS_SBPRO_AUX_LINE = 52; { Sound Blaster Pro aux (line in)}
  163. MM_WSS_SBPRO_AUX_CD = 53; { Sound Blaster Pro aux (CD) }
  164. MM_WSS_SBPRO_MIXER = 54; { Sound Blaster Pro mixer }
  165. MM_MSFT_WSS_NT_WAVEIN = 55; { WSS NT wave in }
  166. MM_MSFT_WSS_NT_WAVEOUT = 56; { WSS NT wave out }
  167. MM_MSFT_WSS_NT_FMSYNTH_STEREO = 57; { WSS NT FM synth }
  168. MM_MSFT_WSS_NT_MIXER = 58; { WSS NT mixer }
  169. MM_MSFT_WSS_NT_AUX = 59; { WSS NT aux }
  170. MM_MSFT_SB16_WAVEIN = 60; { Sound Blaster 16 waveform input}
  171. MM_MSFT_SB16_WAVEOUT = 61; { Sound Blaster 16 waveform output}
  172. MM_MSFT_SB16_MIDIIN = 62; { Sound Blaster 16 midi-in }
  173. MM_MSFT_SB16_MIDIOUT = 63; { Sound Blaster 16 midi out }
  174. MM_MSFT_SB16_SYNTH = 64; { Sound Blaster 16 FM Synthesis }
  175. MM_MSFT_SB16_AUX_LINE = 65; { Sound Blaster 16 aux (line in) }
  176. MM_MSFT_SB16_AUX_CD = 66; { Sound Blaster 16 aux (CD) }
  177. MM_MSFT_SB16_MIXER = 67; { Sound Blaster 16 mixer device }
  178. MM_MSFT_SBPRO_WAVEIN = 68; { Sound Blaster Pro waveform input}
  179. MM_MSFT_SBPRO_WAVEOUT = 69; { Sound Blaster Pro waveform output}
  180. MM_MSFT_SBPRO_MIDIIN = 70; { Sound Blaster Pro midi in }
  181. MM_MSFT_SBPRO_MIDIOUT = 71; { Sound Blaster Pro midi out }
  182. MM_MSFT_SBPRO_SYNTH = 72; { Sound Blaster Pro FM synthesis }
  183. MM_MSFT_SBPRO_AUX_LINE = 73; { Sound Blaster Pro aux (line in)}
  184. MM_MSFT_SBPRO_AUX_CD = 74; { Sound Blaster Pro aux (CD) }
  185. MM_MSFT_SBPRO_MIXER = 75; { Sound Blaster Pro mixer }
  186. { MM_CREATIVE product IDs }
  187. MM_CREATIVE_SB15_WAVEIN = 1; { SB (r) 1.5 waveform input }
  188. MM_CREATIVE_SB20_WAVEIN = 2;
  189. MM_CREATIVE_SBPRO_WAVEIN = 3;
  190. MM_CREATIVE_SBP16_WAVEIN = 4;
  191. MM_CREATIVE_SB15_WAVEOUT = 101;
  192. MM_CREATIVE_SB20_WAVEOUT = 102;
  193. MM_CREATIVE_SBPRO_WAVEOUT = 103;
  194. MM_CREATIVE_SBP16_WAVEOUT = 104;
  195. MM_CREATIVE_MIDIOUT = 201;{ SB (r) }
  196. MM_CREATIVE_MIDIIN = 202;{ SB (r) }
  197. MM_CREATIVE_FMSYNTH_MONO = 301;{ SB (r) }
  198. MM_CREATIVE_FMSYNTH_STEREO = 302;{ SB Pro (r) stereo synthesizer }
  199. MM_CREATIVE_AUX_CD = 401;{ SB Pro (r) aux (CD) }
  200. MM_CREATIVE_AUX_LINE = 402;{ SB Pro (r) aux (Line in ) }
  201. MM_CREATIVE_AUX_MIC = 403;{ SB Pro (r) aux (mic) }
  202. MM_CREATIVE_AUX_MASTER = 404;
  203. MM_CREATIVE_AUX_PCSPK = 405;
  204. MM_CREATIVE_AUX_WAVE = 406;
  205. MM_CREATIVE_AUX_MIDI = 407;
  206. MM_CREATIVE_SBPRO_MIXER = 408;
  207. MM_CREATIVE_SB16_MIXER = 409;
  208. { MM_MEDIAVISION product IDs }
  209. { Pro Audio Spectrum }
  210. MM_MEDIAVISION_PROAUDIO = $10;
  211. MM_PROAUD_MIDIOUT = MM_MEDIAVISION_PROAUDIO+1;
  212. MM_PROAUD_MIDIIN = MM_MEDIAVISION_PROAUDIO+2;
  213. MM_PROAUD_SYNTH = MM_MEDIAVISION_PROAUDIO+3;
  214. MM_PROAUD_WAVEOUT = MM_MEDIAVISION_PROAUDIO+4;
  215. MM_PROAUD_WAVEIN = MM_MEDIAVISION_PROAUDIO+5;
  216. MM_PROAUD_MIXER = MM_MEDIAVISION_PROAUDIO+6;
  217. MM_PROAUD_AUX = MM_MEDIAVISION_PROAUDIO+7;
  218. { Thunder Board }
  219. MM_MEDIAVISION_THUNDER = $20;
  220. MM_THUNDER_SYNTH = MM_MEDIAVISION_THUNDER+3;
  221. MM_THUNDER_WAVEOUT = MM_MEDIAVISION_THUNDER+4;
  222. MM_THUNDER_WAVEIN = MM_MEDIAVISION_THUNDER+5;
  223. MM_THUNDER_AUX = MM_MEDIAVISION_THUNDER+7;
  224. { Audio Port }
  225. MM_MEDIAVISION_TPORT = $40;
  226. MM_TPORT_WAVEOUT = MM_MEDIAVISION_TPORT+1;
  227. MM_TPORT_WAVEIN = MM_MEDIAVISION_TPORT+2;
  228. MM_TPORT_SYNTH = MM_MEDIAVISION_TPORT+3;
  229. { Pro Audio Spectrum Plus }
  230. MM_MEDIAVISION_PROAUDIO_PLUS = $50;
  231. MM_PROAUD_PLUS_MIDIOUT = MM_MEDIAVISION_PROAUDIO_PLUS+1;
  232. MM_PROAUD_PLUS_MIDIIN = MM_MEDIAVISION_PROAUDIO_PLUS+2;
  233. MM_PROAUD_PLUS_SYNTH = MM_MEDIAVISION_PROAUDIO_PLUS+3;
  234. MM_PROAUD_PLUS_WAVEOUT = MM_MEDIAVISION_PROAUDIO_PLUS+4;
  235. MM_PROAUD_PLUS_WAVEIN = MM_MEDIAVISION_PROAUDIO_PLUS+5;
  236. MM_PROAUD_PLUS_MIXER = MM_MEDIAVISION_PROAUDIO_PLUS+6;
  237. MM_PROAUD_PLUS_AUX = MM_MEDIAVISION_PROAUDIO_PLUS+7;
  238. { Pro Audio Spectrum 16 }
  239. MM_MEDIAVISION_PROAUDIO_16 = $60;
  240. MM_PROAUD_16_MIDIOUT = MM_MEDIAVISION_PROAUDIO_16+1;
  241. MM_PROAUD_16_MIDIIN = MM_MEDIAVISION_PROAUDIO_16+2;
  242. MM_PROAUD_16_SYNTH = MM_MEDIAVISION_PROAUDIO_16+3;
  243. MM_PROAUD_16_WAVEOUT = MM_MEDIAVISION_PROAUDIO_16+4;
  244. MM_PROAUD_16_WAVEIN = MM_MEDIAVISION_PROAUDIO_16+5;
  245. MM_PROAUD_16_MIXER = MM_MEDIAVISION_PROAUDIO_16+6;
  246. MM_PROAUD_16_AUX = MM_MEDIAVISION_PROAUDIO_16+7;
  247. { Pro Audio Studio 16 }
  248. MM_MEDIAVISION_PROSTUDIO_16 = $60;
  249. MM_STUDIO_16_MIDIOUT = MM_MEDIAVISION_PROSTUDIO_16+1;
  250. MM_STUDIO_16_MIDIIN = MM_MEDIAVISION_PROSTUDIO_16+2;
  251. MM_STUDIO_16_SYNTH = MM_MEDIAVISION_PROSTUDIO_16+3;
  252. MM_STUDIO_16_WAVEOUT = MM_MEDIAVISION_PROSTUDIO_16+4;
  253. MM_STUDIO_16_WAVEIN = MM_MEDIAVISION_PROSTUDIO_16+5;
  254. MM_STUDIO_16_MIXER = MM_MEDIAVISION_PROSTUDIO_16+6;
  255. MM_STUDIO_16_AUX = MM_MEDIAVISION_PROSTUDIO_16+7;
  256. { CDPC }
  257. MM_MEDIAVISION_CDPC = $70;
  258. MM_CDPC_MIDIOUT = MM_MEDIAVISION_CDPC+1;
  259. MM_CDPC_MIDIIN = MM_MEDIAVISION_CDPC+2;
  260. MM_CDPC_SYNTH = MM_MEDIAVISION_CDPC+3;
  261. MM_CDPC_WAVEOUT = MM_MEDIAVISION_CDPC+4;
  262. MM_CDPC_WAVEIN = MM_MEDIAVISION_CDPC+5;
  263. MM_CDPC_MIXER = MM_MEDIAVISION_CDPC+6;
  264. MM_CDPC_AUX = MM_MEDIAVISION_CDPC+7;
  265. { Opus MV 1208 Chipsent }
  266. MM_MEDIAVISION_OPUS1208 = $80;
  267. MM_OPUS401_MIDIOUT = MM_MEDIAVISION_OPUS1208+1;
  268. MM_OPUS401_MIDIIN = MM_MEDIAVISION_OPUS1208+2;
  269. MM_OPUS1208_SYNTH = MM_MEDIAVISION_OPUS1208+3;
  270. MM_OPUS1208_WAVEOUT = MM_MEDIAVISION_OPUS1208+4;
  271. MM_OPUS1208_WAVEIN = MM_MEDIAVISION_OPUS1208+5;
  272. MM_OPUS1208_MIXER = MM_MEDIAVISION_OPUS1208+6;
  273. MM_OPUS1208_AUX = MM_MEDIAVISION_OPUS1208+7;
  274. { Opus MV 1216 chipset }
  275. MM_MEDIAVISION_OPUS1216 = $90;
  276. MM_OPUS1216_MIDIOUT = MM_MEDIAVISION_OPUS1216+1;
  277. MM_OPUS1216_MIDIIN = MM_MEDIAVISION_OPUS1216+2;
  278. MM_OPUS1216_SYNTH = MM_MEDIAVISION_OPUS1216+3;
  279. MM_OPUS1216_WAVEOUT = MM_MEDIAVISION_OPUS1216+4;
  280. MM_OPUS1216_WAVEIN = MM_MEDIAVISION_OPUS1216+5;
  281. MM_OPUS1216_MIXER = MM_MEDIAVISION_OPUS1216+6;
  282. MM_OPUS1216_AUX = MM_MEDIAVISION_OPUS1216+7;
  283. { MM_ARTISOFT product IDs }
  284. MM_ARTISOFT_SBWAVEIN = 1; { Artisoft sounding Board waveform input }
  285. MM_ARTISOFT_SBWAVEOUT = 2; { Artisoft sounding Board waveform output}
  286. { MM_IBM product IDs }
  287. MM_MMOTION_WAVEAUX = 1; { IBM M-Motion Auxiliary Device }
  288. MM_MMOTION_WAVEOUT = 2; { IBM M-Motion Waveform output }
  289. MM_MMOTION_WAVEIN = 3; { IBM M-Motion Waveform Input }
  290. MM_IBM_PCMCIA_WAVEIN = 11; { IBM waveform input }
  291. MM_IBM_PCMCIA_WAVEOUT = 12; { IBM Waveform output }
  292. MM_IBM_PCMCIA_SYNTH = 13; { IBM Midi Synthesis }
  293. MM_IBM_PCMCIA_MIDIIN = 14; { IBM external MIDI in }
  294. MM_IBM_PCMCIA_MIDIOUT = 15; { IBM external MIDI out }
  295. MM_IBM_PCMCIA_AUX = 16; { IBM auxiliary control }
  296. { MM_VOCALTEC product IDs }
  297. MM_VOCALTEC_WAVEOUT = 1;
  298. MM_VOCALTEC_WAVEIN = 2;
  299. { MM_ROLAND product IDs }
  300. MM_ROLAND_MPU401_MIDIOUT = 15;
  301. MM_ROLAND_MPU401_MIDIIN = 16;
  302. MM_ROLAND_SMPU_MIDIOUTA = 17;
  303. MM_ROLAND_SMPU_MIDIOUTB = 18;
  304. MM_ROLAND_SMPU_MIDIINA = 19;
  305. MM_ROLAND_SMPU_MIDIINB = 20;
  306. MM_ROLAND_SC7_MIDIOUT = 21;
  307. MM_ROLAND_SC7_MIDIIN = 22;
  308. MM_ROLAND_SERIAL_MIDIOUT = 23;
  309. MM_ROLAND_SERIAL_MIDIIN = 24;
  310. { MM_DSP_SOLUTIONS product IDs }
  311. MM_DSP_SOLUTIONS_WAVEOUT = 1;
  312. MM_DSP_SOLUTIONS_WAVEIN = 2;
  313. MM_DSP_SOLUTIONS_SYNTH = 3;
  314. MM_DSP_SOLUTIONS_AUX = 4;
  315. { MM_WANGLABS product IDs }
  316. MM_WANGLABS_WAVEIN1 = 1; { Input audio wave on CPU board models:}
  317. MM_WANGLABS_WAVEOUT1 = 2; { Exec 4010, 4030, 3450; PC 251/25c, }
  318. { pc 461/25s , pc 461/33c }
  319. { MM_TANDY product IDs }
  320. MM_TANDY_VISWAVEIN = $1;
  321. MM_TANDY_VISWAVEOUT = $2;
  322. MM_TANDY_VISBIOSSYNTH = $3;
  323. MM_TANDY_SENS_MMAWAVEIN = $4;
  324. MM_TANDY_SENS_MMAWAVEOUT = $5;
  325. MM_TANDY_SENS_MMAMIDIIN = $6;
  326. MM_TANDY_SENS_MMAMIDIOUT = $7;
  327. MM_TANDY_SENS_VISWAVEOUT = $8;
  328. MM_TANDY_PSSJWAVEIN = $9;
  329. MM_TANDY_PSSJWAVEOUT = $10;
  330. { product IDs }
  331. MM_INTELOPD_WAVEIN = $1; { HID2 WaveAudio Driver }
  332. MM_INTELOPD_WAVEOUT = $101; { HID2 }
  333. MM_INTELOPD_AUX = $401; { HID2 for mixing }
  334. { MM_INTERACTIVE product IDs }
  335. MM_INTERACTIVE_WAVEIN = $45;
  336. MM_INTERACTIVE_WAVEOUT = $45;
  337. { MM_YAMAHA product IDs }
  338. MM_YAMAHA_GSS_SYNTH = $01;
  339. MM_YAMAHA_GSS_WAVEOUT = $02;
  340. MM_YAMAHA_GSS_WAVEIN = $03;
  341. MM_YAMAHA_GSS_MIDIOUT = $04;
  342. MM_YAMAHA_GSS_MIDIIN = $05;
  343. MM_YAMAHA_GSS_AUX = $06;
  344. { MM_EVEREX product IDs }
  345. MM_EVEREX_CARRIER = $01;
  346. { MM_ECHO product IDs }
  347. MM_ECHO_SYNTH = $01;
  348. MM_ECHO_WAVEOUT = $02;
  349. MM_ECHO_WAVEIN = $03;
  350. MM_ECHO_MIDIOUT = $04;
  351. MM_ECHO_MIDIIN = $05;
  352. MM_ECHO_AUX = $06;
  353. { MM_SIERRA product IDs }
  354. MM_SIERRA_ARIA_MIDIOUT = $14;
  355. MM_SIERRA_ARIA_MIDIIN = $15;
  356. MM_SIERRA_ARIA_SYNTH = $16;
  357. MM_SIERRA_ARIA_WAVEOUT = $17;
  358. MM_SIERRA_ARIA_WAVEIN = $18;
  359. MM_SIERRA_ARIA_AUX = $19;
  360. MM_SIERRA_ARIA_AUX2 = $20;
  361. { MM_CAT product IDs }
  362. MM_CAT_WAVEOUT = $1;
  363. { MM_DSP_GROUP product IDs }
  364. MM_DSP_GROUP_TRUESPEECH = $01;
  365. { MM_MELABS product IDs }
  366. MM_MELABS_MIDI2GO = $01;
  367. { MM_ESS product IDs }
  368. MM_ESS_AMWAVEOUT = $01;
  369. MM_ESS_AMWAVEIN = $02;
  370. MM_ESS_AMAUX = $03;
  371. MM_ESS_AMSYNTH = $04;
  372. MM_ESS_AMMIDIOUT = $05;
  373. MM_ESS_AMMIDIIN = $06;
  374. { product IDs }
  375. MM_EPS_FMSND = 1;
  376. { MM_TRUEVISION product IDs }
  377. MM_TRUEVISION_WAVEIN1 = 1;
  378. MM_TRUEVISION_WAVEOUT1 = 2;
  379. { MM_AZTECH product IDs }
  380. MM_AZTECH_MIDIOUT = 3;
  381. MM_AZTECH_MIDIIN = 4;
  382. MM_AZTECH_WAVEIN = 17;
  383. MM_AZTECH_WAVEOUT = 18;
  384. MM_AZTECH_FMSYNTH = 20;
  385. MM_AZTECH_PRO16_WAVEIN = 33;
  386. MM_AZTECH_PRO16_WAVEOUT = 34;
  387. MM_AZTECH_PRO16_FMSYNTH = 38;
  388. MM_AZTECH_DSP16_WAVEIN = 65;
  389. MM_AZTECH_DSP16_WAVEOUT = 66;
  390. MM_AZTECH_DSP16_FMSYNTH = 68;
  391. MM_AZTECH_DSP16_WAVESYNTH = 70;
  392. MM_AZTECH_AUX_CD = 401;
  393. MM_AZTECH_AUX_LINE = 402;
  394. MM_AZTECH_AUX_MIC = 403;
  395. { MM_VIDEOLOGIC product IDs }
  396. MM_VIDEOLOGIC_MSWAVEIN = 1;
  397. MM_VIDEOLOGIC_MSWAVEOUT = 2;
  398. { MM_KORG product IDs }
  399. MM_KORG_PCIF_MIDIOUT = 1;
  400. MM_KORG_PCIF_MIDIIN = 2;
  401. { MM_APT product IDs }
  402. MM_APT_ACE100CD = 1;
  403. { MM_ICS product IDs }
  404. MM_ICS_WAVEDECK_WAVEOUT = 1; { MS WSS compatible card and driver }
  405. MM_ICS_WAVEDECK_WAVEIN = 2;
  406. MM_ICS_WAVEDECK_MIXER = 3;
  407. MM_ICS_WAVEDECK_AUX = 4;
  408. MM_ICS_WAVEDECK_SYNTH = 5;
  409. { MM_ITERATEDSYS product IDs }
  410. MM_ITERATEDSYS_FUFCODEC = 1;
  411. { MM_METHEUS product IDs }
  412. MM_METHEUS_ZIPPER = 1;
  413. { MM_WINNOV product IDs }
  414. MM_WINNOV_CAVIAR_WAVEIN = 1;
  415. MM_WINNOV_CAVIAR_WAVEOUT = 2;
  416. MM_WINNOV_CAVIAR_VIDC = 3;
  417. MM_WINNOV_CAVIAR_CHAMPAGNE = 4; { Fourcc is CHAM }
  418. MM_WINNOV_CAVIAR_YUV8 = 5; { Fourcc is YUV8 }
  419. { MM_NCR product IDs }
  420. MM_NCR_BA_WAVEIN = 1;
  421. MM_NCR_BA_WAVEOUT = 2;
  422. MM_NCR_BA_SYNTH = 3;
  423. MM_NCR_BA_AUX = 4;
  424. MM_NCR_BA_MIXER = 5;
  425. { MM_VITEC product IDs }
  426. MM_VITEC_VMAKER = 1;
  427. MM_VITEC_VMPRO = 2;
  428. { MM_MOSCOM product IDs }
  429. MM_MOSCOM_VPC2400 = 1; { Four Port Voice Processing / Voice Recognition Board }
  430. { MM_SILICONSOFT product IDs }
  431. MM_SILICONSOFT_SC1_WAVEIN = 1; { Waveform in , high sample rate }
  432. MM_SILICONSOFT_SC1_WAVEOUT = 2; { Waveform out , high sample rate }
  433. MM_SILICONSOFT_SC2_WAVEIN = 3; { Waveform in 2 channels, high sample rate }
  434. MM_SILICONSOFT_SC2_WAVEOUT = 4; { Waveform out 2 channels, high sample rate }
  435. MM_SILICONSOFT_SOUNDJR2_WAVEOUT= 5; { Waveform out, self powered, efficient }
  436. MM_SILICONSOFT_SOUNDJR2PR_WAVEIN=6; { Waveform in, self powered, efficient }
  437. MM_SILICONSOFT_SOUNDJR2PR_WAVEOUT=7;{ Waveform out 2 channels, self powered, efficient }
  438. MM_SILICONSOFT_SOUNDJR3_WAVEOUT= 8; { Waveform in 2 channels, self powered, efficient }
  439. { MM_OLIVETTI product IDs }
  440. MM_OLIVETTI_WAVEIN = 1;
  441. MM_OLIVETTI_WAVEOUT = 2;
  442. MM_OLIVETTI_MIXER = 3;
  443. MM_OLIVETTI_AUX = 4;
  444. MM_OLIVETTI_MIDIIN = 5;
  445. MM_OLIVETTI_MIDIOUT = 6;
  446. MM_OLIVETTI_SYNTH = 7;
  447. MM_OLIVETTI_JOYSTICK = 8;
  448. MM_OLIVETTI_ACM_GSM = 9;
  449. MM_OLIVETTI_ACM_ADPCM = 10;
  450. MM_OLIVETTI_ACM_CELP = 11;
  451. MM_OLIVETTI_ACM_SBC = 12;
  452. MM_OLIVETTI_ACM_OPR = 13;
  453. { MM_IOMAGIC product IDs }
  454. { The I/O Magic Tempo is a PCMCIA Type 2 audio card featuring wave }
  455. { audio record and playback, FM synthesizer, and MIDI output. The }
  456. { I/O Magic Tempo WaveOut device supports mono and stereo PCM }
  457. { playback at rates of 7350, 11025, 22050, and 44100 samples }
  458. MM_IOMAGIC_TEMPO_WAVEOUT = 1;
  459. MM_IOMAGIC_TEMPO_WAVEIN = 2;
  460. MM_IOMAGIC_TEMPO_SYNTH = 3;
  461. MM_IOMAGIC_TEMPO_MIDIOUT = 4;
  462. MM_IOMAGIC_TEMPO_MXDOUT = 5;
  463. MM_IOMAGIC_TEMPO_AUXOUT = 6;
  464. { MM_MATSUSHITA product IDs }
  465. MM_MATSUSHITA_WAVEIN = 1;
  466. MM_MATSUSHITA_WAVEOUT = 2;
  467. MM_MATSUSHITA_FMSYNTH_STEREO = 3;
  468. MM_MATSUSHITA_MIXER = 4;
  469. MM_MATSUSHITA_AUX = 5;
  470. { MM_NEWMEDIA product IDs }
  471. MM_NEWMEDIA_WAVJAMMER = 1; { WSS Compatible sound card. }
  472. { MM_LYRRUS product IDs }
  473. { Bridge is a MIDI driver that allows the the Lyrrus G-VOX hardware }
  474. { to communicate with Windows base transcription and sequencer }
  475. { applications. The driver also provides a mechanism for the user to}
  476. { configure the system to their personal playing style. }
  477. MM_LYRRUS_BRIDGE_GUITAR = 1;
  478. { MM_OPTI product IDs }
  479. MM_OPTI_M16_FMSYNTH_STEREO = $0001;
  480. MM_OPTI_M16_MIDIIN = $0002;
  481. MM_OPTI_M16_MIDIOUT = $0003;
  482. MM_OPTI_M16_WAVEIN = $0004;
  483. MM_OPTI_M16_WAVEOUT = $0005;
  484. MM_OPTI_M16_MIXER = $0006;
  485. MM_OPTI_M16_AUX = $0007;
  486. MM_OPTI_P16_FMSYNTH_STEREO = $0010;
  487. MM_OPTI_P16_MIDIIN = $0011;
  488. MM_OPTI_P16_MIDIOUT = $0012;
  489. MM_OPTI_P16_WAVEIN = $0013;
  490. MM_OPTI_P16_WAVEOUT = $0014;
  491. MM_OPTI_P16_MIXER = $0015;
  492. MM_OPTI_P16_AUX = $0016;
  493. MM_OPTI_M32_WAVEIN = $0020;
  494. MM_OPTI_M32_WAVEOUT = $0021;
  495. MM_OPTI_M32_MIDIIN = $0022;
  496. MM_OPTI_M32_MIDIOUT = $0023;
  497. MM_OPTI_M32_SYNTH_STEREO = $0024;
  498. MM_OPTI_M32_MIXER = $0025;
  499. MM_OPTI_M32_AUX = $0026;
  500. {$ENDIF} { NOMMIDS }
  501. {**************************************************************************}
  502. { INFO LIST CHUNKS (from the Multimedia Programmer's Reference }
  503. { (plus new ones) }
  504. {**************************************************************************}
  505. {$IFNDEF NONEWRIFFINFO}
  506. const
  507. RIFFINFO_IARL = $4C524149; {'IARL'} { Archival location }
  508. RIFFINFO_IART = $54524149; {'IART'} { Artist }
  509. RIFFINFO_ICMS = $534D4349; {'ICMS'} { Commissioned }
  510. RIFFINFO_ICMT = $544D4349; {'ICMT'} { Comments }
  511. RIFFINFO_ICOP = $504F4349; {'ICOP'} { Copyright }
  512. RIFFINFO_ICRD = $44524349; {'ICRD'} { Creation date of subject }
  513. RIFFINFO_ICRP = $50524349; {'ICRP'} { Cropped }
  514. RIFFINFO_IDIM = $4D494449; {'IDIM'} { Dimensions }
  515. RIFFINFO_IDPI = $49504449; {'IDPI'} { Dots per inch }
  516. RIFFINFO_IENG = $474E4549; {'IENG'} { Engineer }
  517. RIFFINFO_IGNR = $524E4749; {'IGNR'} { Genre }
  518. RIFFINFO_IKEY = $59454B49; {'IKEY'} { Keywords }
  519. RIFFINFO_ILGT = $54474C49; {'ILGT'} { Lightness settings }
  520. RIFFINFO_IMED = $44454D49; {'IMED'} { Medium }
  521. RIFFINFO_INAM = $4D414E49; {'INAM'} { Name of subject }
  522. RIFFINFO_IPLT = $544C5049; {'IPLT'} { Palette Settings. No. of colors requested.}
  523. RIFFINFO_IPRD = $44525049; {'IPRD'} { Product }
  524. RIFFINFO_ISBJ = $4A425349; {'ISBJ'} { Subject description }
  525. RIFFINFO_ISFT = $54465349; {'ISFT'} { Software. Name of package used to create file.}
  526. RIFFINFO_ISHP = $50485349; {'ISHP'} { Sharpness. }
  527. RIFFINFO_ISRC = $43525349; {'ISRC'} { Source. }
  528. RIFFINFO_ISRF = $46525349; {'ISRF'} { Source Form. ie slide, paper }
  529. RIFFINFO_ITCH = $48435449; {'ITCH'} { Technician who digitized the subject.}
  530. { New INFO Chunks as of August 30, 1993: }
  531. RIFFINFO_ISMP = $504D5349; {'ISMP'} { SMPTE time code }
  532. { ISMP: SMPTE time code of digitization start point expressed as a }
  533. { NULL terminated text string "HH:MM:SS:FF". If performing MCI }
  534. { capture in AVICAP, this chunk will be automatically set based on }
  535. { the MCI start time. }
  536. RIFFINFO_IDIT = $54494449; {'IDIT'} { Digitization Time }
  537. { IDIT: "Digitization Time" Specifies the time and date that the }
  538. { digitization commenced. The digitization time is contained in an }
  539. { ASCII string which contains exactly 26 characters and is in the }
  540. { format "Wed Jan 02 02:03:55 1990\n\0". }
  541. { The ctime(), asctime(), functions can be used to create strings }
  542. { in this format. This chunk is automatically added to the capture }
  543. { file based on the current system time at the moment capture is }
  544. { initiated. }
  545. RIFFINFO_I = $20202049; {'I '} { Template line for new additions}
  546. {$ENDIF} { NONEWRIFFINFO }
  547. (**************************************************************************)
  548. {$IFNDEF NONEWWAVE}
  549. { WAVE form wFormatTag IDs }
  550. const
  551. WAVE_FORMAT_UNKNOWN = $0000; { Microsoft Corporation }
  552. WAVE_FORMAT_ADPCM = $0002; { Microsoft Corporation }
  553. WAVE_FORMAT_MEDIAVISION_ADPCM = $0003; { MV's *UNREGISTERED* ADPCM}
  554. WAVE_FORMAT_IBM_CVSD = $0005; { IBM Corporation }
  555. WAVE_FORMAT_ALAW = $0006; { Microsoft Corporation }
  556. WAVE_FORMAT_MULAW = $0007; { Microsoft Corporation }
  557. WAVE_FORMAT_OKI_ADPCM = $0010; { OKI }
  558. WAVE_FORMAT_DVI_ADPCM = $0011; { Intel Corporation }
  559. WAVE_FORMAT_IMA_ADPCM = $0011; { Intel Corporation }
  560. WAVE_FORMAT_MEDIASPACE_ADPCM = $0012; { Videologic }
  561. WAVE_FORMAT_SIERRA_ADPCM = $0013; { Sierra Semiconductor Corp}
  562. WAVE_FORMAT_G723_ADPCM = $0014; { Antex Electronics Corporation}
  563. WAVE_FORMAT_DIGISTD = $0015; { DSP Solutions, Inc. }
  564. WAVE_FORMAT_DIGIFIX = $0016; { DSP Solutions, Inc. }
  565. WAVE_FORMAT_DIALOGIC_OKI_ADPCM = $0017; { Dialogic Corporation }
  566. WAVE_FORMAT_YAMAHA_ADPCM = $0020; { Yamaha Corporation of America}
  567. WAVE_FORMAT_SONARC = $0021; { Speech Compression }
  568. WAVE_FORMAT_DSPGROUP_TRUESPEECH = $0022; { DSP Group, Inc }
  569. WAVE_FORMAT_ECHOSC1 = $0023; { Echo Speech Corporation }
  570. WAVE_FORMAT_AUDIOFILE_AF36 = $0024; { }
  571. WAVE_FORMAT_APTX = $0025; { Audio Processing Technology}
  572. WAVE_FORMAT_AUDIOFILE_AF10 = $0026; { }
  573. WAVE_FORMAT_DOLBY_AC2 = $0030; { Dolby Laboratories }
  574. WAVE_FORMAT_DOLBYAC2 = WAVE_FORMAT_DOLBY_AC2;
  575. WAVE_FORMAT_GSM610 = $0031; { Microsoft Corporation }
  576. WAVE_FORMAT_ANTEX_ADPCME = $0033; { Antex Electronics Corporation}
  577. WAVE_FORMAT_CONTROL_RES_VQLPC = $0034; { Control Resources Limited}
  578. WAVE_FORMAT_DIGIREAL = $0035; { DSP Solutions, Inc. }
  579. WAVE_FORMAT_DIGIADPCM = $0036; { DSP Solutions, Inc. }
  580. WAVE_FORMAT_CONTROL_RES_CR10 = $0037; { Control Resources Limited}
  581. WAVE_FORMAT_NMS_VBXADPCM = $0038; { Natural MicroSystems }
  582. WAVE_FORMAT_CS_IMAADPCM = $0039; { Crystal Semiconductor IMA ADPCM }
  583. WAVE_FORMAT_G721_ADPCM = $0040; { Antex Electronics Corporation}
  584. WAVE_FORMAT_MPEG = $0050; { Microsoft Corporation }
  585. WAVE_FORMAT_MPEG_LAYER3 = $0055; { ISO Mpeg Layer 3 }
  586. WAVE_FORMAT_CREATIVE_ADPCM = $0200; { Creative Labs, Inc }
  587. WAVE_FORMAT_CREATIVE_FASTSPEECH8 = $0202; { Creative Labs, Inc }
  588. WAVE_FORMAT_CREATIVE_FASTSPEECH10 = $0203; { Creative Labs, Inc }
  589. WAVE_FORMAT_CDIC = $0204; { cdi-c }
  590. WAVE_FORMAT_CDIB = $0205; { cdi-b }
  591. WAVE_FORMAT_ADPCME = $0206; { ANTEX-DVI-OKI_ADPCME }
  592. WAVE_FORMAT_DOLBY_AC2_REVA = $0209; { dolby ac2 48khz rev a }
  593. WAVE_FORMAT_G728_CELP = $020A; { G.728 }
  594. WAVE_FORMAT_AAUDIT = $020B; { AAUDIT }
  595. WAVE_FORMAT_PCM32 = $020C; { PCM 32 }
  596. WAVE_FORMAT_FM_TOWNS_SND = $0300; { Fujitsu Corp. }
  597. WAVE_FORMAT_OLIGSM = $1000; { Ing C. Olivetti & C., S.p.A.}
  598. WAVE_FORMAT_OLIADPCM = $1001; { Ing C. Olivetti & C., S.p.A.}
  599. WAVE_FORMAT_OLICELP = $1002; { Ing C. Olivetti & C., S.p.A.}
  600. WAVE_FORMAT_OLISBC = $1003; { Ing C. Olivetti & C., S.p.A.}
  601. WAVE_FORMAT_OLIOPR = $1004; { Ing C. Olivetti & C., S.p.A.}
  602. { the WAVE_FORMAT_DEVELOPMENT format tag can be used during the }
  603. { development phase of a new wave format. Before shipping, you MUST }
  604. { acquire an official format tag from Microsoft. }
  605. WAVE_FORMAT_DEVELOPMENT = $FFFF;
  606. {$ENDIF} { NONEWWAVE }
  607. {$IFNDEF WIN32}
  608. type
  609. DWORD = Longint;
  610. {*************************************************************************}
  611. { We must redeclare this, Borland has the records in MMSystem packed !!! }
  612. {*************************************************************************}
  613. {*************************************************************************}
  614. { general waveform format structure (information common to all formats) }
  615. {*************************************************************************}
  616. type
  617. PWaveFormat = ^TWaveFormat;
  618. TWaveFormat = packed record
  619. wFormatTag : Word; { format type }
  620. nChannels : Word; { number of channels (i.e. mono, stereo, etc.) }
  621. nSamplesPerSec : DWORD; { sample rate }
  622. nAvgBytesPerSec: DWORD; { for buffer estimation }
  623. nBlockAlign : Word; { block size of data }
  624. end;
  625. {*************************************************************************}
  626. { specific waveform format structure for PCM data }
  627. {*************************************************************************}
  628. type
  629. PPCMWaveFormat = ^TPCMWaveFormat;
  630. TPCMWaveFormat = packed record
  631. wf: TWaveFormat;
  632. wBitsPerSample: Word;
  633. end;
  634. {*************************************************************************}
  635. { general extended waveform format structure }
  636. { Use this for all NON PCM formats (information common to all formats) }
  637. {*************************************************************************}
  638. type
  639. PWaveFormatEx = ^TWaveFormatEx;
  640. TWaveFormatEx = packed record
  641. wFormatTag : Word; { format type }
  642. nChannels : Word; { number of channels (i.e. mono, stereo..)}
  643. nSamplesPerSec : Longint; { sample rate }
  644. nAvgBytesPerSec: Longint; { for buffer estimation }
  645. nBlockAlign : Word; { block size of data }
  646. wBitsPerSample : Word; { Number of bits per sample of mono data }
  647. cbSize : Word; { The count in bytes of the size of }
  648. end; { extra information (after cbSize) }
  649. {$ENDIF}
  650. type
  651. PWaveFormatExtensible = ^TWaveFormatExtensible;
  652. TWaveFormatExtensible = packed record
  653. Format: TWaveFormatEx;
  654. Samples: record
  655. case Word of
  656. 0: (wValidBitsPerSample: WORD);// bits of precision
  657. 1: (wSamplesPerBlock : WORD);// valid if wBitsPerSample==0
  658. 2: (wReserved : WORD);// If neither applies, set to zero.
  659. end;
  660. dwChannelMask: DWORD; // which channels are
  661. SubFormat : TGUID; // present in stream
  662. end;
  663. const
  664. WAVE_FORMAT_EXTENSIBLE = $FFFE;
  665. // Speaker Positions:
  666. SPEAKER_FRONT_LEFT = $1;
  667. SPEAKER_FRONT_RIGHT = $2;
  668. SPEAKER_FRONT_CENTER = $4;
  669. SPEAKER_LOW_FREQUENCY = $8;
  670. SPEAKER_BACK_LEFT = $10;
  671. SPEAKER_BACK_RIGHT = $20;
  672. SPEAKER_FRONT_LEFT_OF_CENTER = $40;
  673. SPEAKER_FRONT_RIGHT_OF_CENTER = $80;
  674. SPEAKER_BACK_CENTER = $100;
  675. SPEAKER_SIDE_LEFT = $200;
  676. SPEAKER_SIDE_RIGHT = $400;
  677. SPEAKER_TOP_CENTER = $800;
  678. SPEAKER_TOP_FRONT_LEFT = $1000;
  679. SPEAKER_TOP_FRONT_CENTER = $2000;
  680. SPEAKER_TOP_FRONT_RIGHT = $4000;
  681. SPEAKER_TOP_BACK_LEFT = $8000;
  682. SPEAKER_TOP_BACK_CENTER = $10000;
  683. SPEAKER_TOP_BACK_RIGHT = $20000;
  684. // Bit mask locations reserved for future use
  685. SPEAKER_RESERVED = $7FFC0000;
  686. // Used to specify that any possible permutation of speaker configurations
  687. SPEAKER_ALL = $80000000;
  688. // DirectSound Speaker Config
  689. KSAUDIO_SPEAKER_MONO = SPEAKER_FRONT_CENTER;
  690. KSAUDIO_SPEAKER_STEREO = SPEAKER_FRONT_LEFT or SPEAKER_FRONT_RIGHT;
  691. KSAUDIO_SPEAKER_QUAD = SPEAKER_FRONT_LEFT or SPEAKER_FRONT_RIGHT or
  692. SPEAKER_BACK_LEFT or SPEAKER_BACK_RIGHT;
  693. KSAUDIO_SPEAKER_SURROUND = SPEAKER_FRONT_LEFT or SPEAKER_FRONT_RIGHT or
  694. SPEAKER_FRONT_CENTER or SPEAKER_BACK_CENTER;
  695. KSAUDIO_SPEAKER_5POINT1 = SPEAKER_FRONT_LEFT or SPEAKER_FRONT_RIGHT or
  696. SPEAKER_FRONT_CENTER or SPEAKER_LOW_FREQUENCY or
  697. SPEAKER_BACK_LEFT or SPEAKER_BACK_RIGHT;
  698. KSAUDIO_SPEAKER_7POINT1 = SPEAKER_FRONT_LEFT or SPEAKER_FRONT_RIGHT or
  699. SPEAKER_FRONT_CENTER or SPEAKER_LOW_FREQUENCY or
  700. SPEAKER_BACK_LEFT or SPEAKER_BACK_RIGHT or
  701. SPEAKER_FRONT_LEFT_OF_CENTER or SPEAKER_FRONT_RIGHT_OF_CENTER;
  702. // DVD Speaker Positions
  703. KSAUDIO_SPEAKER_GROUND_FRONT_LEFT = SPEAKER_FRONT_LEFT;
  704. KSAUDIO_SPEAKER_GROUND_FRONT_CENTER = SPEAKER_FRONT_CENTER;
  705. KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT = SPEAKER_FRONT_RIGHT;
  706. KSAUDIO_SPEAKER_GROUND_REAR_LEFT = SPEAKER_BACK_LEFT;
  707. KSAUDIO_SPEAKER_GROUND_REAR_RIGHT = SPEAKER_BACK_RIGHT;
  708. KSAUDIO_SPEAKER_TOP_MIDDLE = SPEAKER_TOP_CENTER;
  709. KSAUDIO_SPEAKER_SUPER_WOOFER = SPEAKER_LOW_FREQUENCY;
  710. //DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_PCM)
  711. KSDATAFORMAT_SUBTYPE_PCM : TGUID = '{00000001-0000-0010-8000-00aa00389b71}';
  712. {$IFNDEF NONEWWAVE}
  713. {*************************************************************************}
  714. { Define data for MS ADPCM }
  715. {*************************************************************************}
  716. type
  717. PADPCMCOEFSET = ^TADPCMCOEFSET;
  718. TADPCMCOEFSET = packed record
  719. iCoef1: Smallint;
  720. iCoef2: Smallint;
  721. end;
  722. PADPCMWaveFormat = ^TADPCMWaveFormat;
  723. TADPCMWaveFormat = packed record
  724. wfx : TWaveFormatEx;
  725. wSamplesPerBlock : Word;
  726. wNumCoef : Word;
  727. aCoef: array[0..0] of TADPCMCOEFSET;
  728. end;
  729. {*************************************************************************}
  730. { Intel's DVI ADPCM structure definitions }
  731. { for WAVE_FORMAT_DVI_ADPCM $0011 }
  732. {*************************************************************************}
  733. type
  734. PDVIADPCMWaveFormat = ^TDVIADPCMWaveFormat;
  735. TDVIADPCMWaveFormat = packed record
  736. wfx : TWaveFormatEx;
  737. wSamplesPerBlock: Word;
  738. end;
  739. {*************************************************************************}
  740. { IMA endorsed ADPCM structure definitions--note that this is exactly }
  741. { the same format as Intel's DVI ADPCM. }
  742. { }
  743. { for WAVE_FORMAT_IMA_ADPCM (0x0011) }
  744. {*************************************************************************}
  745. type
  746. PIMAADPCMWaveFormat = ^TIMAADPCMWaveFormat;
  747. TIMAADPCMWaveFormat = packed record
  748. wfx : TWaveFormatEx;
  749. wSamplesPerBlock: Word;
  750. end;
  751. {*************************************************************************}
  752. { VideoLogic's Media Space ADPCM Structure definitions }
  753. { for WAVE_FORMAT_MEDIASPACE_ADPCM (0x0012) }
  754. {*************************************************************************}
  755. type
  756. PMEDIASPACEADPCMWaveFormat = ^TMEDIASPACEADPCMWaveFormat;
  757. TMEDIASPACEADPCMWaveFormat = packed record
  758. wfx : TWaveFormatEx;
  759. wRevision: Word;
  760. end;
  761. {*************************************************************************}
  762. { Sierra Semiconductor }
  763. { for WAVE_FORMAT_SIERRA_ADPCM (0x0013) }
  764. {*************************************************************************}
  765. type
  766. PSIERRAADPCMWaveFormat = ^TSIERRAADPCMWaveFormat;
  767. TSIERRAADPCMWaveFormat = packed record
  768. wfx : TWaveFormatEx;
  769. wRevision: Word;
  770. end;
  771. {*************************************************************************}
  772. { Antex Electronics structure definitions }
  773. { for WAVE_FORMAT_G723_ADPCM (0x0014) }
  774. {*************************************************************************}
  775. type
  776. PG723_ADPCMWaveFormat = ^TG723_ADPCMWaveFormat;
  777. TG723_ADPCMWaveFormat = packed record
  778. wfx : TWaveFormatEx;
  779. cbExtraSize : Word;
  780. nAuxBlockSize: Word;
  781. end;
  782. {*************************************************************************}
  783. { DSP Solutions (formerly DIGISPEECH) structure definitions }
  784. { for WAVE_FORMAT_DIGISTD (0x0015) }
  785. {*************************************************************************}
  786. type
  787. PDIGISTDWaveFormat = ^TDIGISTDWaveFormat;
  788. TDIGISTDWaveFormat = packed record
  789. wfx: TWaveFormatEx;
  790. end;
  791. {*************************************************************************}
  792. { DSP Solutions (formerly DIGISPEECH) structure definitions }
  793. { for WAVE_FORMAT_DIGIFIX (0x0016) }
  794. {*************************************************************************}
  795. type
  796. PDIGIFIXWaveFormat = ^TDIGIFIXWaveFormat;
  797. TDIGIFIXWaveFormat = packed record
  798. wfx: TWaveFormatEx;
  799. end;
  800. {*************************************************************************}
  801. { Dialogic Corporation }
  802. { WAVEFORMAT_DIALOGIC_OKI_ADPCM (0x0017) }
  803. {*************************************************************************}
  804. type
  805. PDIALOGICOKIADPCMWaveFormat = ^TDIALOGICOKIADPCMWaveFormat;
  806. TDIALOGICOKIADPCMWaveFormat = packed record
  807. ewf: TWaveFormatEx;
  808. end;
  809. {*************************************************************************}
  810. { Yamaha Compression's ADPCM structure definitions }
  811. { for WAVE_FORMAT_YAMAHA_ADPCM (0x0020) }
  812. {*************************************************************************}
  813. type
  814. PYAMAHA_ADPCMWaveFormat = ^TYAMAHA_ADPCMWaveFormat;
  815. TYAMAHA_ADPCMWaveFormat = packed record
  816. wfx: TWaveFormatEx;
  817. end;
  818. {*************************************************************************}
  819. { Speech Compression's Sonarc structure definitions }
  820. { for WAVE_FORMAT_SONARC (0x0021) }
  821. {*************************************************************************}
  822. type
  823. PSONARCWaveFormat = ^TSONARCWaveFormat;
  824. TSONARCWaveFormat = packed record
  825. wfx : TWaveFormatEx;
  826. wCompType: Word;
  827. end;
  828. {*************************************************************************}
  829. { DSP Groups's TRUESPEECH structure definitions }
  830. { for WAVE_FORMAT_DSPGROUP_TRUESPEECH (0x0022) }
  831. {*************************************************************************}
  832. type
  833. PTRUESPEECHWaveFormat = ^TTRUESPEECHWaveFormat;
  834. TTRUESPEECHWaveFormat = packed record
  835. wfx : TWaveFormatEx;
  836. wRevision : Word;
  837. nSamplesPerBlock : Word;
  838. abReserved: array[0..27]of Byte;
  839. end;
  840. {*************************************************************************}
  841. { Echo Speech Corp structure definitions }
  842. { for WAVE_FORMAT_ECHOSC1 (0x0023) }
  843. {*************************************************************************}
  844. type
  845. PECHOSC1WaveFormat = ^TECHOSC1WaveFormat;
  846. TECHOSC1WaveFormat = packed record
  847. wfx: TWaveFormatEx;
  848. end;
  849. {*************************************************************************}
  850. { Audiofile Inc.structure definitions }
  851. { for WAVE_FORMAT_AUDIOFILE_AF36 (0x0024) }
  852. {*************************************************************************}
  853. type
  854. PAUDIOFILE_AF36WaveFormat = ^TAUDIOFILE_AF36WaveFormat;
  855. TAUDIOFILE_AF36WaveFormat = packed record
  856. wfx: TWaveFormatEx;
  857. end;
  858. {*************************************************************************}
  859. { Audio Processing Technology structure definitions }
  860. { for WAVE_FORMAT_APTX (0x0025) }
  861. {*************************************************************************}
  862. type
  863. PAPTXWaveFormatEx = ^TAPTXWaveFormatEx;
  864. TAPTXWaveFormatEx = packed record
  865. wfx: TWaveFormatEx;
  866. end;
  867. {*************************************************************************}
  868. { Audiofile Inc.structure definitions }
  869. { for WAVE_FORMAT_AUDIOFILE_AF10 (0x0026) }
  870. {*************************************************************************}
  871. type
  872. PAUDIOFILE_AF10WaveFormat = ^TAUDIOFILE_AF10WaveFormat;
  873. TAUDIOFILE_AF10WaveFormat = packed record
  874. wfx: TWaveFormatEx;
  875. end;
  876. {*************************************************************************}
  877. { Dolby's AC-2 wave format structure definition }
  878. { for WAVE_FORMAT_DOLBY_AC2 (0x0030) }
  879. {*************************************************************************}
  880. type
  881. PDOLBYAC2WaveFormat = ^TDOLBYAC2WaveFormat;
  882. TDOLBYAC2WaveFormat = packed record
  883. wfx : TWaveFormatEx;
  884. nAuxBitsCode: Word;
  885. end;
  886. {*************************************************************************}
  887. { Microsoft's WAVE_FORMAT_GSM 610 0x0031 }
  888. {*************************************************************************}
  889. type
  890. PGSM610WaveFormat = ^TGSM610WaveFormat;
  891. TGSM610WaveFormat = packed record
  892. wfx : TWaveFormatEx;
  893. wSamplesPerBlock: Word;
  894. end;
  895. {*************************************************************************}
  896. { Antex Electronics Corp }
  897. { for WAVE_FORMAT_ADPCME (0x0033) }
  898. {*************************************************************************}
  899. type
  900. PADPCMEWaveFormat = ^TADPCMEWaveFormat;
  901. TADPCMEWaveFormat = packed record
  902. wfx : TWaveFormatEx;
  903. wSamplesPerBlock: Word;
  904. end;
  905. {*************************************************************************}
  906. { Control Resources Limited }
  907. { WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 }
  908. {*************************************************************************}
  909. type
  910. PCONTRESVQLPCWaveFormat = ^TCONTRESVQLPCWaveFormat;
  911. TCONTRESVQLPCWaveFormat = packed record
  912. wfx : TWaveFormatEx;
  913. wSamplesPerBlock: Word;
  914. end;
  915. {*************************************************************************}
  916. { for WAVE_FORMAT_DIGIREAL (0x0035) }
  917. {*************************************************************************}
  918. type
  919. PDIGIREALWaveFormat = ^TDIGIREALWaveFormat;
  920. TDIGIREALWaveFormat = packed record
  921. wfx : TWaveFormatEx;
  922. wSamplesPerBlock: Word;
  923. end;
  924. {*************************************************************************}
  925. { DSP Solutions }
  926. { for WAVE_FORMAT_DIGIADPCM (0x0036) }
  927. {*************************************************************************}
  928. type
  929. PDIGIADPCMWaveFormat = ^TDIGIADPCMWaveFormat;
  930. TDIGIADPCMWaveFormat = packed record
  931. wfx : TWaveFormatEx;
  932. wSamplesPerBlock: Word;
  933. end;
  934. {*************************************************************************}
  935. { Control Resources Limited }
  936. { for WAVE_FORMAT_CONTROL_RES_CR10 0x0037 }
  937. {*************************************************************************}
  938. type
  939. PCONTRESCR10WaveFormat = ^TCONTRESCR10WaveFormat;
  940. TCONTRESCR10WaveFormat = packed record
  941. wfx : TWaveFormatEx;
  942. wSamplesPerBlock: Word;
  943. end;
  944. {*************************************************************************}
  945. { Natural Microsystems }
  946. { for WAVE_FORMAT_NMS_VBXADPCM (0x0038) }
  947. {*************************************************************************}
  948. type
  949. PNMS_VBXADPCMWaveFormat = ^TNMS_VBXADPCMWaveFormat;
  950. TNMS_VBXADPCMWaveFormat = packed record
  951. wfx : TWaveFormatEx;
  952. wSamplesPerBlock: Word;
  953. end;
  954. {*************************************************************************}
  955. { Antex Electronics structure definitions }
  956. { for WAVE_FORMAT_G721_ADPCM (0x0040) }
  957. {*************************************************************************}
  958. type
  959. PG721_ADPCMWaveFormat = ^TG721_ADPCMWaveFormat;
  960. TG721_ADPCMWaveFormat = packed record
  961. wfx : TWaveFormatEx;
  962. nAuxBlockSize: Word;
  963. end;
  964. {*************************************************************************}
  965. { Microsoft MPEG audio WAV definition }
  966. { MPEG-1 audio wave format (audio layer only). (0x0050) }
  967. {*************************************************************************}
  968. const
  969. ACM_MPEG_LAYER1 = $0001;
  970. ACM_MPEG_LAYER2 = $0002;
  971. ACM_MPEG_LAYER3 = $0004;
  972. ACM_MPEG_STEREO = $0001;
  973. ACM_MPEG_JOINTSTEREO = $0002;
  974. ACM_MPEG_DUALCHANNEL = $0004;
  975. ACM_MPEG_SINGLECHANNEL = $0008;
  976. ACM_MPEG_PRIVATEBIT = $0001;
  977. ACM_MPEG_COPYRIGHT = $0002;
  978. ACM_MPEG_ORIGINALHOME = $0004;
  979. ACM_MPEG_PROTECTIONBIT = $0008;
  980. ACM_MPEG_ID_MPEG1 = $0010;
  981. type
  982. PMPEG1WaveFormat = ^TMPEG1WaveFormat;
  983. TMPEG1WaveFormat = packed record
  984. wfx : TWaveFormatEx;
  985. fwHeadLayer : Word;
  986. dwHeadBitrate: Longint;
  987. fwHeadMode : Word;
  988. fwHeadModeExt: Word;
  989. wHeadEmphasis: Word;
  990. fwHeadFlags : Word;
  991. dwPTSLow : Longint;
  992. dwPTSHigh : Longint;
  993. end;
  994. const
  995. MPEGLAYER3_WFX_EXTRA_BYTES = 12;
  996. type
  997. PMPEGLayer3WaveFormat = ^TMPEGLayer3WaveFormat;
  998. TMPEGLayer3WaveFormat = packed record
  999. wfx : TWaveFormatEx;
  1000. wID : WORD;
  1001. fdwFlags : DWORD;
  1002. nBlockSize : WORD;
  1003. nFramesPerBlock: WORD;
  1004. nCodecDelay : WORD;
  1005. end;
  1006. {*************************************************************************}
  1007. { Creative's ADPCM structure definitions }
  1008. { for WAVE_FORMAT_CREATIVE_ADPCM (0x0200) }
  1009. {*************************************************************************}
  1010. type
  1011. PCREATIVEADPCMWaveFormat = ^TCREATIVEADPCMWaveFormat;
  1012. TCREATIVEADPCMWaveFormat = packed record
  1013. wfx : TWaveFormatEx;
  1014. wRevision: Word;
  1015. end;
  1016. {*************************************************************************}
  1017. { Creative FASTSPEECH }
  1018. { WAVEFORMAT_CREATIVE_FASTSPEECH8 (0x0202) }
  1019. {*************************************************************************}
  1020. type
  1021. PCREATIVEFASTSPEECH8WaveFormat = ^TCREATIVEFASTSPEECH8WaveFormat;
  1022. TCREATIVEFASTSPEECH8WaveFormat = packed record
  1023. wfx : TWaveFormatEx;
  1024. wRevision: Word;
  1025. end;
  1026. {*************************************************************************}
  1027. { Creative FASTSPEECH }
  1028. { WAVEFORMAT_CREATIVE_FASTSPEECH10 (0x0203) }
  1029. {*************************************************************************}
  1030. type
  1031. PCREATIVEFASTSPEECH10WaveFormat = ^TCREATIVEFASTSPEECH10WaveFormat;
  1032. TCREATIVEFASTSPEECH10WaveFormat = packed record
  1033. wfx : TWaveFormatEx;
  1034. wRevision: Word;
  1035. end;
  1036. {*************************************************************************}
  1037. { Fujitsu FM Towns 'SND' structure }
  1038. { for WAVE_FORMAT_FMMTOWNS_SND (0x0300) }
  1039. {*************************************************************************}
  1040. type
  1041. PFMTOWNS_SND_WaveFormat = ^TFMTOWNS_SND_WaveFormat;
  1042. TFMTOWNS_SND_WaveFormat = packed record
  1043. wfx : TWaveFormatEx;
  1044. wRevision: Word;
  1045. end;
  1046. {*************************************************************************}
  1047. { Olivetti structure }
  1048. { for WAVE_FORMAT_OLIGSM (0x1000) }
  1049. {*************************************************************************}
  1050. type
  1051. POLIGSMWaveFormat = ^TOLIGSMWaveFormat;
  1052. TOLIGSMWaveFormat = packed record
  1053. wfx : TWaveFormatEx;
  1054. end;
  1055. {*************************************************************************}
  1056. { Olivetti structure }
  1057. { for WAVE_FORMAT_OLIADPCM (0x1001) }
  1058. {*************************************************************************}
  1059. type
  1060. POLIADPCMWaveFormat = ^TOLIADPCMWaveFormat;
  1061. TOLIADPCMWaveFormat = packed record
  1062. wfx : TWaveFormatEx;
  1063. end;
  1064. {*************************************************************************}
  1065. { Olivetti structure }
  1066. { for WAVE_FORMAT_OLICELP (0x1002) }
  1067. {*************************************************************************}
  1068. type
  1069. POLICELPWaveFormat = ^TOLICELPWaveFormat;
  1070. TOLICELPWaveFormat = packed record
  1071. wfx : TWaveFormatEx;
  1072. end;
  1073. {*************************************************************************}
  1074. { Olivetti structure }
  1075. { for WAVE_FORMAT_OLISBC (0x1003) }
  1076. {*************************************************************************}
  1077. type
  1078. POLISBCWaveFormat = ^TOLISBCWaveFormat;
  1079. TOLISBCWaveFormat = packed record
  1080. wfx : TWaveFormatEx;
  1081. end;
  1082. {*************************************************************************}
  1083. { Olivetti structure }
  1084. { for WAVE_FORMAT_OLIOPR (0x1004) }
  1085. {*************************************************************************}
  1086. type
  1087. POLIOPRWaveFormat = ^TOLIOPRWaveFormat;
  1088. TOLIOPRWaveFormat = packed record
  1089. wfx : TWaveFormatEx;
  1090. end;
  1091. {**************************************************************************}
  1092. { ACM Wave Filters
  1093. {**************************************************************************}
  1094. {$IFNDEF ACM_WAVEFILTER} {$DEFINE ACM_WAVEFILTER}
  1095. const
  1096. WAVE_FILTER_UNKNOWN = $0000;
  1097. WAVE_FILTER_DEVELOPMENT = $FFFF;
  1098. type
  1099. PWaveFilter = ^TWaveFilter;
  1100. TWaveFilter = packed record
  1101. cbStruct : Longint; { Size of the filter in bytes }
  1102. dwFilterTag: Longint; { fitler type }
  1103. fdwFilter : Longint; { Flags for the filter (Universal Dfns)}
  1104. dwReserved: array[0..4] of Longint;{ Reserved for system use }
  1105. end;
  1106. {$ENDIF} { ACM_WAVEFILTER }
  1107. {**************************************************************************}
  1108. {$IFNDEF WAVE_FILTER_VOLUME}
  1109. const
  1110. WAVE_FILTER_VOLUME = $0001;
  1111. type
  1112. PVolumeWaveFilter = ^TVolumeWaveFilter;
  1113. TVolumeWaveFilter = packed record
  1114. wfltr : TWaveFilter;
  1115. dwVolume: Longint;
  1116. end;
  1117. {$ENDIF} { WAVE_FILTER_VOLUME }
  1118. {**************************************************************************}
  1119. {$IFNDEF WAVE_FILTER_ECHO}
  1120. const
  1121. WAVE_FILTER_ECHO = $0002;
  1122. type
  1123. PEchoWaveFilter = ^TEchoWaveFilter;
  1124. TEchoWaveFilter = packed record
  1125. wfltr : TWaveFilter;
  1126. dwVolume: Longint;
  1127. dwDelay : Longint;
  1128. end;
  1129. {$ENDIF} { WAVEFILTER_ECHO }
  1130. {**************************************************************************}
  1131. { New RIFF WAVE Chunks }
  1132. {**************************************************************************}
  1133. const
  1134. RIFFWAVE_inst = $74736E69; { 'inst' }
  1135. type
  1136. TRIFFWave_inst = packed record
  1137. bUnshiftedNote: Byte;
  1138. chFineTune : Char;
  1139. chGain : Char;
  1140. bLowNote : Byte;
  1141. bHighNote : Byte;
  1142. bLowVelocity : Byte;
  1143. bHighVelocity : Byte;
  1144. end;
  1145. {$ENDIF} { NONEWWAVE }
  1146. {**************************************************************************}
  1147. { New RIFF Forms }
  1148. {**************************************************************************}
  1149. {$IFNDEF NONEWRIFF}
  1150. const
  1151. { RIFF AVI }
  1152. { AVI file format is specified in a seperate file (AVIFMT.H), }
  1153. { which is available in the VfW and Chicago SDK }
  1154. { RIFF CPPO }
  1155. RIFFCPPO = $4F505043; {'CPPO'}
  1156. RIFFCPPO_objr = $726A626F; {'objr'}
  1157. RIFFCPPO_obji = $696A626F; {'obji'}
  1158. RIFFCPPO_clsr = $72736C63; {'clsr'}
  1159. RIFFCPPO_clsi = $69736C63; {'clsi'}
  1160. RIFFCPPO_mbr = $2072626D; {'mbr '}
  1161. RIFFCPPO_char = $72616863; {'char'}
  1162. RIFFCPPO_byte = $63747962; {'byte'}
  1163. RIFFCPPO_int = $20746E69; {'int '}
  1164. RIFFCPPO_word = $64726F77; {'word'}
  1165. RIFFCPPO_long = $676F6E6C; {'long'}
  1166. RIFFCPPO_dwrd = $64727764; {'dwrd'}
  1167. RIFFCPPO_flt = $20746C66; {'flt '}
  1168. RIFFCPPO_dbl = $206C6264; {'dbl '}
  1169. RIFFCPPO_str = $20727473; {'str '}
  1170. {$ENDIF} { NONEWRIFF }
  1171. {**************************************************************************}
  1172. { DIB Compression Defines }
  1173. {**************************************************************************}
  1174. {$IFNDEF NOBITMAP}
  1175. {$IFNDEF BI_BITFIELDS}
  1176. const
  1177. BI_BITFIELDS = 3;
  1178. {$ENDIF}
  1179. {$IFNDEF QUERYDIBSUPPORT}
  1180. const
  1181. QUERYDIBSUPPORT = $3073;
  1182. QDI_SETDIBITS = $0001;
  1183. QDI_GETDIBITS = $0002;
  1184. QDI_DIBTOSCREEN = $0004;
  1185. QDI_STRETCHDIB = $0008;
  1186. {$ENDIF}
  1187. { Structure definitions }
  1188. type
  1189. TEXBMINFOHEADER = packed record
  1190. bmi: TBitmapInfoHeader;
  1191. { extended BITMAPINFOHEADER fields }
  1192. biExtDataOffset: Longint;
  1193. { Other stuff will go here }
  1194. { ... }
  1195. { Format-specific information }
  1196. { biExtDataOffset points here }
  1197. end;
  1198. { New DIB Compression Defines }
  1199. const
  1200. BICOMP_IBMULTIMOTION = $49544C55; {'ULTI'}
  1201. BICOMP_IBMPHOTOMOTION = $4F4D4850; {'PHMO'}
  1202. BICOMP_CREATIVEYUV = $72757963; {'cyuv'}
  1203. {$ENDIF} { NOBITMAP }
  1204. {$IFNDEF NOJPEGDIB}
  1205. { New DIB Compression Defines }
  1206. const
  1207. JPEG_DIB = $4745504A; {'JPEG'} { Still image JPEG DIB biCompression }
  1208. MJPG_DIB = $47504A4D; {'MJPG'} { Motion JPEG DIB biCompression }
  1209. { JPEGProcess Definitions }
  1210. const
  1211. JPEG_PROCESS_BASELINE = 0; { Baseline DCT }
  1212. { AVI File format extensions }
  1213. AVIIF_CONTROLFRAME = $00000200; { This is a control frame }
  1214. { JIF Marker byte pairs in JPEG Interchange Format sequence }
  1215. JIFMK_SOF0 = $FFC0; { SOF Huff - Baseline DCT }
  1216. JIFMK_SOF1 = $FFC1; { SOF Huff - Extended sequential DCT }
  1217. JIFMK_SOF2 = $FFC2; { SOF Huff - Progressive DCT }
  1218. JIFMK_SOF3 = $FFC3; { SOF Huff - Spatial (sequential) lossless }
  1219. JIFMK_SOF5 = $FFC5; { SOF Huff - Differential sequential DCT }
  1220. JIFMK_SOF6 = $FFC6; { SOF Huff - Differential progressive DCT }
  1221. JIFMK_SOF7 = $FFC7; { SOF Huff - Differential spatial }
  1222. JIFMK_JPG = $FFC8; { SOF Arith - Reserved for JPEG extensions }
  1223. JIFMK_SOF9 = $FFC9; { SOF Arith - Extended sequential DCT }
  1224. JIFMK_SOF10 = $FFCA; { SOF Arith - Progressive DCT }
  1225. JIFMK_SOF11 = $FFCB; { SOF Arith - Spatial (sequential) lossless }
  1226. JIFMK_SOF13 = $FFCD; { SOF Arith - Differential sequential DCT }
  1227. JIFMK_SOF14 = $FFCE; { SOF Arith - Differential progressive DCT }
  1228. JIFMK_SOF15 = $FFCF; { SOF Arith - Differential spatial }
  1229. JIFMK_DHT = $FFC4; { Define Huffman Table(s) }
  1230. JIFMK_DAC = $FFCC; { Define Arithmetic coding conditioning(s) }
  1231. JIFMK_RST0 = $FFD0; { Restart with modulo 8 count 0 }
  1232. JIFMK_RST1 = $FFD1; { Restart with modulo 8 count 1 }
  1233. JIFMK_RST2 = $FFD2; { Restart with modulo 8 count 2 }
  1234. JIFMK_RST3 = $FFD3; { Restart with modulo 8 count 3 }
  1235. JIFMK_RST4 = $FFD4; { Restart with modulo 8 count 4 }
  1236. JIFMK_RST5 = $FFD5; { Restart with modulo 8 count 5 }
  1237. JIFMK_RST6 = $FFD6; { Restart with modulo 8 count 6 }
  1238. JIFMK_RST7 = $FFD7; { Restart with modulo 8 count 7 }
  1239. JIFMK_SOI = $FFD8; { Start of Image }
  1240. JIFMK_EOI = $FFD9; { End of Image }
  1241. JIFMK_SOS = $FFDA; { Start of Scan }
  1242. JIFMK_DQT = $FFDB; { Define quantization Table(s) }
  1243. JIFMK_DNL = $FFDC; { Define Number of Lines }
  1244. JIFMK_DRI = $FFDD; { Define Restart Interval }
  1245. JIFMK_DHP = $FFDE; { Define Hierarchical progression }
  1246. JIFMK_EXP = $FFDF; { Expand Reference Component(s) }
  1247. JIFMK_APP0 = $FFE0; { Application Field 0 }
  1248. JIFMK_APP1 = $FFE1; { Application Field 1 }
  1249. JIFMK_APP2 = $FFE2; { Application Field 2 }
  1250. JIFMK_APP3 = $FFE3; { Application Field 3 }
  1251. JIFMK_APP4 = $FFE4; { Application Field 4 }
  1252. JIFMK_APP5 = $FFE5; { Application Field 5 }
  1253. JIFMK_APP6 = $FFE6; { Application Field 6 }
  1254. JIFMK_APP7 = $FFE7; { Application Field 7 }
  1255. JIFMK_JPG0 = $FFF0; { Reserved for JPEG extensions }
  1256. JIFMK_JPG1 = $FFF1; { Reserved for JPEG extensions }
  1257. JIFMK_JPG2 = $FFF2; { Reserved for JPEG extensions }
  1258. JIFMK_JPG3 = $FFF3; { Reserved for JPEG extensions }
  1259. JIFMK_JPG4 = $FFF4; { Reserved for JPEG extensions }
  1260. JIFMK_JPG5 = $FFF5; { Reserved for JPEG extensions }
  1261. JIFMK_JPG6 = $FFF6; { Reserved for JPEG extensions }
  1262. JIFMK_JPG7 = $FFF7; { Reserved for JPEG extensions }
  1263. JIFMK_JPG8 = $FFF8; { Reserved for JPEG extensions }
  1264. JIFMK_JPG9 = $FFF9; { Reserved for JPEG extensions }
  1265. JIFMK_JPG10 = $FFFA; { Reserved for JPEG extensions }
  1266. JIFMK_JPG11 = $FFFB; { Reserved for JPEG extensions }
  1267. JIFMK_JPG12 = $FFFC; { Reserved for JPEG extensions }
  1268. JIFMK_JPG13 = $FFFD; { Reserved for JPEG extensions }
  1269. JIFMK_COM = $FFFE; { Comment }
  1270. JIFMK_TEM = $FF01; { for temp private use arith code }
  1271. JIFMK_RES = $FF02; { Reserved }
  1272. JIFMK_00 = $FF00; { Zero stuffed byte - entropy data }
  1273. JIFMK_FF = $FFFF; { Fill byte }
  1274. { JPEGColorSpaceID Definitions }
  1275. JPEG_Y = 1; { Y only component of YCbCr }
  1276. JPEG_YCbCr = 2; { YCbCr as define by CCIR 601 }
  1277. JPEG_RGB = 3; { 3 component RGB }
  1278. { Structure definitions }
  1279. type
  1280. TJPEGInfoHeader = packed record
  1281. { compression-specific fields }
  1282. { these fields are defined for 'JPEG' and 'MJPG' }
  1283. JPEGSize : Longint;
  1284. JPEGProcess: Longint;
  1285. { Process specific fields }
  1286. JPEGColorSpaceID : Longint;
  1287. JPEGBitsPerSample: Longint;
  1288. JPEGHSubSampling : Longint;
  1289. JPEGVSubSampling : Longint;
  1290. end;
  1291. {$IFDEF MJPGDHTSEG_STORAGE} {$DEFINE MJPGHDTSEG_STORAGE}
  1292. const
  1293. { Default JPEG DHT Segment for YCrCb omitted from MJPG data }
  1294. MJPGDHTSeg : array [0..$1A3] of Byte =
  1295. ($FF,$C4,$01,$A2,$00,$00,$01,$05,$01,$01,$01,$01,$01,$01,$00,$00,
  1296. $00,$00,$00,$00,$00,$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,
  1297. $0B,$01,$00,$03,$01,$01,$01,$01,$01,$01,$01,$01,$01,$00,$00,$00,
  1298. $00,$00,$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$10,$00,
  1299. $02,$01,$03,$03,$02,$04,$03,$05,$05,$04,$04,$00,$00,$01,$7D,$01,
  1300. $02,$03,$00,$04,$11,$05,$12,$21,$31,$41,$06,$13,$51,$61,$07,$22,
  1301. $71,$14,$32,$81,$91,$A1,$08,$23,$42,$B1,$C1,$15,$52,$D1,$F0,$24,
  1302. $33,$62,$72,$82,$09,$0A,$16,$17,$18,$19,$1A,$25,$26,$27,$28,$29,
  1303. $2A,$34,$35,$36,$37,$38,$39,$3A,$43,$44,$45,$46,$47,$48,$49,$4A,
  1304. $53,$54,$55,$56,$57,$58,$59,$5A,$63,$64,$65,$66,$67,$68,$69,$6A,
  1305. $73,$74,$75,$76,$77,$78,$79,$7A,$83,$84,$85,$86,$87,$88,$89,$8A,
  1306. $92,$93,$94,$95,$96,$97,$98,$99,$9A,$A2,$A3,$A4,$A5,$A6,$A7,$A8,
  1307. $A9,$AA,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,$BA,$C2,$C3,$C4,$C5,$C6,
  1308. $C7,$C8,$C9,$CA,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$E1,$E2,$E3,
  1309. $E4,$E5,$E6,$E7,$E8,$E9,$EA,$F1,$F2,$F3,$F4,$F5,$F6,$F7,$F8,$F9,
  1310. $FA,$11,$00,$02,$01,$02,$04,$04,$03,$04,$07,$05,$04,$04,$00,$01,
  1311. $02,$77,$00,$01,$02,$03,$11,$04,$05,$21,$31,$06,$12,$41,$51,$07,
  1312. $61,$71,$13,$22,$32,$81,$08,$14,$42,$91,$A1,$B1,$C1,$09,$23,$33,
  1313. $52,$F0,$15,$62,$72,$D1,$0A,$16,$24,$34,$E1,$25,$F1,$17,$18,$19,
  1314. $1A,$26,$27,$28,$29,$2A,$35,$36,$37,$38,$39,$3A,$43,$44,$45,$46,
  1315. $47,$48,$49,$4A,$53,$54,$55,$56,$57,$58,$59,$5A,$63,$64,$65,$66,
  1316. $67,$68,$69,$6A,$73,$74,$75,$76,$77,$78,$79,$7A,$82,$83,$84,$85,
  1317. $86,$87,$88,$89,$8A,$92,$93,$94,$95,$96,$97,$98,$99,$9A,$A2,$A3,
  1318. $A4,$A5,$A6,$A7,$A8,$A9,$AA,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,$BA,
  1319. $C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$D2,$D3,$D4,$D5,$D6,$D7,$D8,
  1320. $D9,$DA,$E2,$E3,$E4,$E5,$E6,$E7,$E8,$E9,$EA,$F2,$F3,$F4,$F5,$F6,
  1321. $F7,$F8,$F9,$FA);
  1322. {$ENDIF} { End DHT default }
  1323. {$ENDIF} { End JPEG }
  1324. {**************************************************************************}
  1325. { Defined IC types }
  1326. {**************************************************************************}
  1327. {$IFNDEF NONEWIC}
  1328. {$IFNDEF ICTYPE_VIDEO}
  1329. const
  1330. ICTYPE_VIDEO = $63646976; {'vidc'}
  1331. ICTYPE_AUDIO = $63647561; {'audc'}
  1332. {$ENDIF}
  1333. {$ENDIF}
  1334. {**************************************************************************}
  1335. { Misc. FOURCC registration }
  1336. {**************************************************************************}
  1337. {**************************************************************************}
  1338. { Sierra Semiconductor: RDSP- Confidential RIFF file format
  1339. { for the storage and downloading of DSP
  1340. { code for Audio and communications devices.
  1341. {**************************************************************************}
  1342. {$IFNDEF NONEWRIFF}
  1343. const
  1344. FOURCC_RDSP = $50534452; {'RDSP'}
  1345. {$IFNDEF MMNOMIXER}
  1346. {const
  1347. MIXERCONTROL_CONTROLTYPE_SRS_MTS = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 6;
  1348. MIXERCONTROL_CONTROLTYPE_SRS_ONOFF = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 7;
  1349. MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 8;}
  1350. {$ENDIF} { MMNOMIXER }
  1351. {$ENDIF} { NONEWRIFF }
  1352. implementation
  1353. end.