1 {
2      File:       CarbonSound/Sound.h
3 
4      Contains:   Sound Manager Interfaces.
5 
6      Version:    CarbonSound-115~164
7 
8      Copyright:  � 1986-2008 by Apple Computer, Inc., all rights reserved
9 
10      Bugs?:      For bug reports, consult the following page on
11                  the World Wide Web:
12 
13                      http://bugs.freepascal.org
14 
15 }
16 {  Pascal Translation Updated:  Jonas Maebe, <jonas@freepascal.org>, October 2009 }
17 {  Pascal Translation Updated:  Jonas Maebe, <jonas@freepascal.org>, October 2012 }
18 {
19     Modified for use with Free Pascal
20     Version 308
21     Please report any bugs to <gpc@microbizz.nl>
22 }
23 
24 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
25 {$mode macpas}
26 {$modeswitch cblocks}
27 {$packenum 1}
28 {$macro on}
29 {$inline on}
30 {$calling mwpascal}
31 
32 unit Sound;
33 interface
34 {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
35 {$setc GAP_INTERFACES_VERSION := $0308}
36 
37 {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
38     {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
39 {$endc}
40 
41 {$ifc defined CPUPOWERPC and defined CPUI386}
42 	{$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
43 {$endc}
44 {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
45 	{$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
46 {$endc}
47 
48 {$ifc not defined __ppc__ and defined CPUPOWERPC32}
49 	{$setc __ppc__ := 1}
50 {$elsec}
51 	{$setc __ppc__ := 0}
52 {$endc}
53 {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
54 	{$setc __ppc64__ := 1}
55 {$elsec}
56 	{$setc __ppc64__ := 0}
57 {$endc}
58 {$ifc not defined __i386__ and defined CPUI386}
59 	{$setc __i386__ := 1}
60 {$elsec}
61 	{$setc __i386__ := 0}
62 {$endc}
63 {$ifc not defined __x86_64__ and defined CPUX86_64}
64 	{$setc __x86_64__ := 1}
65 {$elsec}
66 	{$setc __x86_64__ := 0}
67 {$endc}
68 {$ifc not defined __arm__ and defined CPUARM}
69 	{$setc __arm__ := 1}
70 {$elsec}
71 	{$setc __arm__ := 0}
72 {$endc}
73 {$ifc not defined __arm64__ and defined CPUAARCH64}
74   {$setc __arm64__ := 1}
75 {$elsec}
76   {$setc __arm64__ := 0}
77 {$endc}
78 
79 {$ifc defined cpu64}
80   {$setc __LP64__ := 1}
81 {$elsec}
82   {$setc __LP64__ := 0}
83 {$endc}
84 
85 
86 {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
87 	{$error Conflicting definitions for __ppc__ and __i386__}
88 {$endc}
89 
90 {$ifc defined __ppc__ and __ppc__}
91 	{$setc TARGET_CPU_PPC := TRUE}
92 	{$setc TARGET_CPU_PPC64 := FALSE}
93 	{$setc TARGET_CPU_X86 := FALSE}
94 	{$setc TARGET_CPU_X86_64 := FALSE}
95 	{$setc TARGET_CPU_ARM := FALSE}
96 	{$setc TARGET_CPU_ARM64 := FALSE}
97 	{$setc TARGET_OS_MAC := TRUE}
98 	{$setc TARGET_OS_IPHONE := FALSE}
99 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
100 	{$setc TARGET_OS_EMBEDDED := FALSE}
101 {$elifc defined __ppc64__ and __ppc64__}
102 	{$setc TARGET_CPU_PPC := FALSE}
103 	{$setc TARGET_CPU_PPC64 := TRUE}
104 	{$setc TARGET_CPU_X86 := FALSE}
105 	{$setc TARGET_CPU_X86_64 := FALSE}
106 	{$setc TARGET_CPU_ARM := FALSE}
107 	{$setc TARGET_CPU_ARM64 := FALSE}
108 	{$setc TARGET_OS_MAC := TRUE}
109 	{$setc TARGET_OS_IPHONE := FALSE}
110 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
111 	{$setc TARGET_OS_EMBEDDED := FALSE}
112 {$elifc defined __i386__ and __i386__}
113 	{$setc TARGET_CPU_PPC := FALSE}
114 	{$setc TARGET_CPU_PPC64 := FALSE}
115 	{$setc TARGET_CPU_X86 := TRUE}
116 	{$setc TARGET_CPU_X86_64 := FALSE}
117 	{$setc TARGET_CPU_ARM := FALSE}
118 	{$setc TARGET_CPU_ARM64 := FALSE}
119 {$ifc defined iphonesim}
120  	{$setc TARGET_OS_MAC := FALSE}
121 	{$setc TARGET_OS_IPHONE := TRUE}
122 	{$setc TARGET_IPHONE_SIMULATOR := TRUE}
123 {$elsec}
124 	{$setc TARGET_OS_MAC := TRUE}
125 	{$setc TARGET_OS_IPHONE := FALSE}
126 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
127 {$endc}
128 	{$setc TARGET_OS_EMBEDDED := FALSE}
129 {$elifc defined __x86_64__ and __x86_64__}
130 	{$setc TARGET_CPU_PPC := FALSE}
131 	{$setc TARGET_CPU_PPC64 := FALSE}
132 	{$setc TARGET_CPU_X86 := FALSE}
133 	{$setc TARGET_CPU_X86_64 := TRUE}
134 	{$setc TARGET_CPU_ARM := FALSE}
135 	{$setc TARGET_CPU_ARM64 := FALSE}
136 {$ifc defined iphonesim}
137  	{$setc TARGET_OS_MAC := FALSE}
138 	{$setc TARGET_OS_IPHONE := TRUE}
139 	{$setc TARGET_IPHONE_SIMULATOR := TRUE}
140 {$elsec}
141 	{$setc TARGET_OS_MAC := TRUE}
142 	{$setc TARGET_OS_IPHONE := FALSE}
143 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
144 {$endc}
145 	{$setc TARGET_OS_EMBEDDED := FALSE}
146 {$elifc defined __arm__ and __arm__}
147 	{$setc TARGET_CPU_PPC := FALSE}
148 	{$setc TARGET_CPU_PPC64 := FALSE}
149 	{$setc TARGET_CPU_X86 := FALSE}
150 	{$setc TARGET_CPU_X86_64 := FALSE}
151 	{$setc TARGET_CPU_ARM := TRUE}
152 	{$setc TARGET_CPU_ARM64 := FALSE}
153 	{$setc TARGET_OS_MAC := FALSE}
154 	{$setc TARGET_OS_IPHONE := TRUE}
155 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
156 	{$setc TARGET_OS_EMBEDDED := TRUE}
157 {$elifc defined __arm64__ and __arm64__}
158 	{$setc TARGET_CPU_PPC := FALSE}
159 	{$setc TARGET_CPU_PPC64 := FALSE}
160 	{$setc TARGET_CPU_X86 := FALSE}
161 	{$setc TARGET_CPU_X86_64 := FALSE}
162 	{$setc TARGET_CPU_ARM := FALSE}
163 	{$setc TARGET_CPU_ARM64 := TRUE}
164 {$ifc defined ios}
165 	{$setc TARGET_OS_MAC := FALSE}
166 	{$setc TARGET_OS_IPHONE := TRUE}
167 	{$setc TARGET_OS_EMBEDDED := TRUE}
168 {$elsec}
169 	{$setc TARGET_OS_MAC := TRUE}
170 	{$setc TARGET_OS_IPHONE := FALSE}
171 	{$setc TARGET_OS_EMBEDDED := FALSE}
172 {$endc}
173 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
174 {$elsec}
175 	{$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
176 {$endc}
177 
178 {$ifc defined __LP64__ and __LP64__ }
179   {$setc TARGET_CPU_64 := TRUE}
180 {$elsec}
181   {$setc TARGET_CPU_64 := FALSE}
182 {$endc}
183 
184 {$ifc defined FPC_BIG_ENDIAN}
185 	{$setc TARGET_RT_BIG_ENDIAN := TRUE}
186 	{$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
187 {$elifc defined FPC_LITTLE_ENDIAN}
188 	{$setc TARGET_RT_BIG_ENDIAN := FALSE}
189 	{$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
190 {$elsec}
191 	{$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
192 {$endc}
193 {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
194 {$setc CALL_NOT_IN_CARBON := FALSE}
195 {$setc OLDROUTINENAMES := FALSE}
196 {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
197 {$setc OPAQUE_UPP_TYPES := TRUE}
198 {$setc OTCARBONAPPLICATION := TRUE}
199 {$setc OTKERNEL := FALSE}
200 {$setc PM_USE_SESSION_APIS := TRUE}
201 {$setc TARGET_API_MAC_CARBON := TRUE}
202 {$setc TARGET_API_MAC_OS8 := FALSE}
203 {$setc TARGET_API_MAC_OSX := TRUE}
204 {$setc TARGET_CARBON := TRUE}
205 {$setc TARGET_CPU_68K := FALSE}
206 {$setc TARGET_CPU_MIPS := FALSE}
207 {$setc TARGET_CPU_SPARC := FALSE}
208 {$setc TARGET_OS_UNIX := FALSE}
209 {$setc TARGET_OS_WIN32 := FALSE}
210 {$setc TARGET_RT_MAC_68881 := FALSE}
211 {$setc TARGET_RT_MAC_CFM := FALSE}
212 {$setc TARGET_RT_MAC_MACHO := TRUE}
213 {$setc TYPED_FUNCTION_POINTERS := TRUE}
214 {$setc TYPE_BOOL := FALSE}
215 {$setc TYPE_EXTENDED := FALSE}
216 {$setc TYPE_LONGLONG := TRUE}
217 uses MacTypes,Components,MixedMode,Dialogs;
218 {$endc} {not MACOSALLINCLUDE}
219 
220 
221 {$ifc TARGET_OS_MAC}
222 
223 {$ALIGN MAC68K}
224 
225 {$ifc not TARGET_CPU_64}
226 {
227                         * * *  N O T E  * * *
228 
229     This file has been updated to include Sound Manager 3.3 interfaces.
230 
231     Some of the Sound Manager 3.0 interfaces were not put into the InterfaceLib
232     that originally shipped with the PowerMacs. These missing functions and the
233     new 3.3 interfaces have been released in the SoundLib library for PowerPC
234     developers to link with. The runtime library for these functions are
235     installed by the Sound Manager. The following functions are found in SoundLib.
236 
237         GetCompressionInfo(), GetSoundPreference(), SetSoundPreference(),
238         UnsignedFixedMulDiv(), SndGetInfo(), SndSetInfo(), GetSoundOutputInfo(),
239         SetSoundOutputInfo(), GetCompressionName(), SoundConverterOpen(),
240         SoundConverterClose(), SoundConverterGetBufferSizes(), SoundConverterBeginConversion(),
241         SoundConverterConvertBuffer(), SoundConverterEndConversion(),
242         AudioGetBass(), AudioGetInfo(), AudioGetMute(), AudioGetOutputDevice(),
243         AudioGetTreble(), AudioGetVolume(), AudioMuteOnEvent(), AudioSetBass(),
244         AudioSetMute(), AudioSetToDefaults(), AudioSetTreble(), AudioSetVolume(),
245         OpenMixerSoundComponent(), CloseMixerSoundComponent(), SoundComponentAddSource(),
246         SoundComponentGetInfo(), SoundComponentGetSource(), SoundComponentGetSourceData(),
247         SoundComponentInitOutputDevice(), SoundComponentPauseSource(),
248         SoundComponentPlaySourceBuffer(), SoundComponentRemoveSource(),
249         SoundComponentSetInfo(), SoundComponentSetOutput(), SoundComponentSetSource(),
250         SoundComponentStartSource(), SoundComponentStopSource(),
251         ParseAIFFHeader(), ParseSndHeader(), SoundConverterGetInfo(), SoundConverterSetInfo()
252 }
253 {
254     Interfaces for Sound Driver, !!! OBSOLETE and NOT SUPPORTED !!!
255 
256     These items are no longer defined, but appear here so that someone
257     searching the interfaces might find them. If you are using one of these
258     items, you must change your code to support the Sound Manager.
259 
260         swMode, ftMode, ffMode
261         FreeWave, FFSynthRec, Tone, SWSynthRec, Wave, FTSoundRec
262         SndCompletionProcPtr
263         StartSound, StopSound, SoundDone
264         SetSoundVol, GetSoundVol
265 }
266 {
267   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
268    constants
269   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
270 }
271 const
272 	twelfthRootTwo = 1.05946309435;
273 
274 const
275 	soundListRsrc = FourCharCode('snd '); {Resource type used by Sound Manager}
276 	kSoundCodecInfoResourceType = FourCharCode('snfo'); {Resource type holding codec information (optional public component resource)}
277 
278 const
279 	kSimpleBeepID = 1;     {reserved resource ID for Simple Beep}
280 
281 const
282 	rate48khz = $BB800000; {48000.00000 in fixed-point}
283 	rate44khz = $AC440000; {44100.00000 in fixed-point}
284 	rate32khz = $7D000000; {32000.00000 in fixed-point}
285 	rate22050hz = $56220000; {22050.00000 in fixed-point}
286 	rate22khz = $56EE8BA3; {22254.54545 in fixed-point}
287 	rate16khz = $3E800000; {16000.00000 in fixed-point}
288 	rate11khz = $2B7745D1; {11127.27273 in fixed-point}
289 	rate11025hz = $2B110000; {11025.00000 in fixed-point}
290 	rate8khz = $1F400000; { 8000.00000 in fixed-point}
291 
292 {synthesizer numbers for SndNewChannel}
293 const
294 	sampledSynth = 5;     {sampled sound synthesizer}
295 
296 {$ifc CALL_NOT_IN_CARBON}
297 const
298 	squareWaveSynth = 1;    {square wave synthesizer}
299 	waveTableSynth = 3;    {wave table synthesizer}
300                                         {old Sound Manager MACE synthesizer numbers}
301 	MACE3snthID = 11;
302 	MACE6snthID = 13;
303 
304 {$endc} {CALL_NOT_IN_CARBON}
305 
306 const
307 	kMiddleC = 60;    {MIDI note value for middle C}
308 
309 const
310 	kNoVolume = 0;    {setting for no sound volume}
311 	kFullVolume = $0100; {1.0, setting for full hardware output volume}
312 
313 const
314 	stdQLength = 128;
315 
316 const
317 	dataOffsetFlag = $8000;
318 
319 const
320 	kUseOptionalOutputDevice = -1;    {only for Sound Manager 3.0 or later}
321 
322 const
323 	notCompressed = 0;    {compression ID's}
324 	fixedCompression = -1;   {compression ID for fixed-sized compression}
325 	variableCompression = -2;    {compression ID for variable-sized compression}
326 
327 const
328 	twoToOne = 1;
329 	eightToThree = 2;
330 	threeToOne = 3;
331 	sixToOne = 4;
332 	sixToOnePacketSize = 8;
333 	threeToOnePacketSize = 16;
334 
335 const
336 	stateBlockSize = 64;
337 	leftOverBlockSize = 32;
338 
339 const
340 	firstSoundFormat = $0001; {general sound format}
341 	secondSoundFormat = $0002; {special sampled sound format (HyperCard)}
342 
343 {$ifc CALL_NOT_IN_CARBON}
344 const
345 	dbBufferReady = $00000001; {double buffer is filled}
346 	dbLastBuffer = $00000004; {last double buffer to play}
347 
348 {$endc} {CALL_NOT_IN_CARBON}
349 
350 const
351 	sysBeepDisable = $0000; {SysBeep() enable flags}
352 	sysBeepEnable = 1 shl 0;
353 	sysBeepSynchronous = 1 shl 1; {if bit set, make alert sounds synchronous}
354 
355 const
356 	unitTypeNoSelection = $FFFF; {unitTypes for AudioSelection.unitType}
357 	unitTypeSeconds = $0000;
358 
359 const
360 	stdSH = $00; {Standard sound header encode value}
361 	extSH = $FF; {Extended sound header encode value}
362 	cmpSH = $FE;  {Compressed sound header encode value}
363 
364 {command numbers for SndDoCommand and SndDoImmediate}
365 const
366 	nullCmd = 0;
367 	quietCmd = 3;
368 	flushCmd = 4;
369 	reInitCmd = 5;
370 	waitCmd = 10;
371 	pauseCmd = 11;
372 	resumeCmd = 12;
373 	callBackCmd = 13;
374 	syncCmd = 14;
375 	availableCmd = 24;
376 	versionCmd = 25;
377 	volumeCmd = 46;   {sound manager 3.0 or later only}
378 	getVolumeCmd = 47;   {sound manager 3.0 or later only}
379 	clockComponentCmd = 50;   {sound manager 3.2.1 or later only}
380 	getClockComponentCmd = 51;   {sound manager 3.2.1 or later only}
381 	scheduledSoundCmd = 52;   {sound manager 3.3 or later only}
382 	linkSoundComponentsCmd = 53;   {sound manager 3.3 or later only}
383 	soundCmd = 80;
384 	bufferCmd = 81;
385 	rateMultiplierCmd = 86;
386 	getRateMultiplierCmd = 87;
387 
388 {$ifc CALL_NOT_IN_CARBON}
389 {command numbers for SndDoCommand and SndDoImmediate that are not available for use in Carbon }
390 const
391 	initCmd = 1;
392 	freeCmd = 2;
393 	totalLoadCmd = 26;
394 	loadCmd = 27;
395 	freqDurationCmd = 40;
396 	restCmd = 41;
397 	freqCmd = 42;
398 	ampCmd = 43;
399 	timbreCmd = 44;
400 	getAmpCmd = 45;
401 	waveTableCmd = 60;
402 	phaseCmd = 61;
403 	rateCmd = 82;
404 	continueCmd = 83;
405 	doubleBufferCmd = 84;
406 	getRateCmd = 85;
407 	sizeCmd = 90;   {obsolete command}
408 	convertCmd = 91;    {obsolete MACE command}
409 
410 {$endc} {CALL_NOT_IN_CARBON}
411 
412 {$ifc OLDROUTINENAMES}
413 {channel initialization parameters}
414 const
415 	waveInitChannelMask = $07;
416 	waveInitChannel0 = $04; {wave table only, Sound Manager 2.0 and earlier}
417 	waveInitChannel1 = $05; {wave table only, Sound Manager 2.0 and earlier}
418 	waveInitChannel2 = $06; {wave table only, Sound Manager 2.0 and earlier}
419 	waveInitChannel3 = $07; {wave table only, Sound Manager 2.0 and earlier}
420 	initChan0 = waveInitChannel0; {obsolete spelling}
421 	initChan1 = waveInitChannel1; {obsolete spelling}
422 	initChan2 = waveInitChannel2; {obsolete spelling}
423 	initChan3 = waveInitChannel3; {obsolete spelling}
424 
425 const
426 	outsideCmpSH = 0;    {obsolete MACE constant}
427 	insideCmpSH = 1;    {obsolete MACE constant}
428 	aceSuccess = 0;    {obsolete MACE constant}
429 	aceMemFull = 1;    {obsolete MACE constant}
430 	aceNilBlock = 2;    {obsolete MACE constant}
431 	aceBadComp = 3;    {obsolete MACE constant}
432 	aceBadEncode = 4;    {obsolete MACE constant}
433 	aceBadDest = 5;    {obsolete MACE constant}
434 	aceBadCmd = 6;     {obsolete MACE constant}
435 
436 {$endc} {OLDROUTINENAMES}
437 
438 const
439 	initChanLeft = $0002; {left stereo channel}
440 	initChanRight = $0003; {right stereo channel}
441 	initNoInterp = $0004; {no linear interpolation}
442 	initNoDrop = $0008; {no drop-sample conversion}
443 	initMono = $0080; {monophonic channel}
444 	initStereo = $00C0; {stereo channel}
445 	initMACE3 = $0300; {MACE 3:1}
446 	initMACE6 = $0400; {MACE 6:1}
447 	initPanMask = $0003; {mask for right/left pan values}
448 	initSRateMask = $0030; {mask for sample rate values}
449 	initStereoMask = $00C0; {mask for mono/stereo values}
450 	initCompMask = $FF00; {mask for compression IDs}
451 
452 {Get&Set Sound Information Selectors}
453 const
454 	siActiveChannels = FourCharCode('chac'); {active channels}
455 	siActiveLevels = FourCharCode('lmac'); {active meter levels}
456 	siAGCOnOff = FourCharCode('agc '); {automatic gain control state}
457 	siAsync = FourCharCode('asyn'); {asynchronous capability}
458 	siAVDisplayBehavior = FourCharCode('avdb');
459 	siChannelAvailable = FourCharCode('chav'); {number of channels available}
460 	siCompressionAvailable = FourCharCode('cmav'); {compression types available}
461 	siCompressionFactor = FourCharCode('cmfa'); {current compression factor}
462 	siCompressionHeader = FourCharCode('cmhd'); {return compression header}
463 	siCompressionNames = FourCharCode('cnam'); {compression type names available}
464 	siCompressionParams = FourCharCode('evaw'); {compression parameters}
465 	siCompressionSampleRate = FourCharCode('cprt'); { SetInfo only: compressor's sample rate}
466 	siCompressionChannels = FourCharCode('cpct'); { SetInfo only: compressor's number of channels}
467 	siCompressionOutputSampleRate = FourCharCode('cort'); { GetInfo only: only implemented by compressors that have differing in and out rates }
468 	siCompressionInputRateList = FourCharCode('crtl'); { GetInfo only: only implemented by compressors that only take certain input rates }
469 	siCompressionType = FourCharCode('comp'); {current compression type}
470 	siCompressionConfiguration = FourCharCode('ccfg'); {compression extensions}
471 	siContinuous = FourCharCode('cont'); {continous recording}
472 	siDecompressionParams = FourCharCode('wave'); {decompression parameters}
473 	siDecompressionConfiguration = FourCharCode('dcfg'); {decompression extensions}
474 	siDeviceBufferInfo = FourCharCode('dbin'); {size of interrupt buffer}
475 	siDeviceConnected = FourCharCode('dcon'); {input device connection status}
476 	siDeviceIcon = FourCharCode('icon'); {input device icon}
477 	siDeviceName = FourCharCode('name'); {input device name}
478 	siEQSpectrumBands = FourCharCode('eqsb'); { number of spectrum bands}
479 	siEQSpectrumLevels = FourCharCode('eqlv'); { gets spectum meter levels}
480 	siEQSpectrumOnOff = FourCharCode('eqlo'); { turn on/off spectum meter levels}
481 	siEQSpectrumResolution = FourCharCode('eqrs'); { set the resolution of the FFT, 0 = low res (<=16 bands), 1 = high res (16-64 bands)}
482 	siEQToneControlGain = FourCharCode('eqtg'); { set the bass and treble gain}
483 	siEQToneControlOnOff = FourCharCode('eqtc'); { turn on equalizer attenuation}
484 	siHardwareBalance = FourCharCode('hbal');
485 	siHardwareBalanceSteps = FourCharCode('hbls');
486 	siHardwareBass = FourCharCode('hbas');
487 	siHardwareBassSteps = FourCharCode('hbst');
488 	siHardwareBusy = FourCharCode('hwbs'); {sound hardware is in use}
489 	siHardwareFormat = FourCharCode('hwfm'); {get hardware format}
490 	siHardwareMute = FourCharCode('hmut'); {mute state of all hardware}
491 	siHardwareMuteNoPrefs = FourCharCode('hmnp'); {mute state of all hardware, but don't store in prefs }
492 	siHardwareTreble = FourCharCode('htrb');
493 	siHardwareTrebleSteps = FourCharCode('hwts');
494 	siHardwareVolume = FourCharCode('hvol'); {volume level of all hardware}
495 	siHardwareVolumeSteps = FourCharCode('hstp'); {number of volume steps for hardware}
496 	siHeadphoneMute = FourCharCode('pmut'); {mute state of headphones}
497 	siHeadphoneVolume = FourCharCode('pvol'); {volume level of headphones}
498 	siHeadphoneVolumeSteps = FourCharCode('hdst'); {number of volume steps for headphones}
499 	siInputAvailable = FourCharCode('inav'); {input sources available}
500 	siInputGain = FourCharCode('gain'); {input gain}
501 	siInputSource = FourCharCode('sour'); {input source selector}
502 	siInputSourceNames = FourCharCode('snam'); {input source names}
503 	siLevelMeterOnOff = FourCharCode('lmet'); {level meter state}
504 	siModemGain = FourCharCode('mgai'); {modem input gain}
505 	siMonitorAvailable = FourCharCode('mnav');
506 	siMonitorSource = FourCharCode('mons');
507 	siNumberChannels = FourCharCode('chan'); {current number of channels}
508 	siOptionsDialog = FourCharCode('optd'); {display options dialog}
509 	siOSTypeInputSource = FourCharCode('inpt'); {input source by OSType}
510 	siOSTypeInputAvailable = FourCharCode('inav'); {list of available input source OSTypes}
511 	siOutputDeviceName = FourCharCode('onam'); {output device name}
512 	siPlayThruOnOff = FourCharCode('plth'); {playthrough state}
513 	siPostMixerSoundComponent = FourCharCode('psmx'); {install post-mixer effect}
514 	siPreMixerSoundComponent = FourCharCode('prmx'); {install pre-mixer effect}
515 	siQuality = FourCharCode('qual'); {quality setting}
516 	siRateMultiplier = FourCharCode('rmul'); {throttle rate setting}
517 	siRecordingQuality = FourCharCode('qual'); {recording quality}
518 	siSampleRate = FourCharCode('srat'); {current sample rate}
519 	siSampleRateAvailable = FourCharCode('srav'); {sample rates available}
520 	siSampleSize = FourCharCode('ssiz'); {current sample size}
521 	siSampleSizeAvailable = FourCharCode('ssav'); {sample sizes available}
522 	siSetupCDAudio = FourCharCode('sucd'); {setup sound hardware for CD audio}
523 	siSetupModemAudio = FourCharCode('sumd'); {setup sound hardware for modem audio}
524 	siSlopeAndIntercept = FourCharCode('flap'); {floating point variables for conversion}
525 	siSoundClock = FourCharCode('sclk');
526 	siUseThisSoundClock = FourCharCode('sclc'); {sdev uses this to tell the mixer to use his sound clock}
527 	siSpeakerMute = FourCharCode('smut'); {mute state of all built-in speaker}
528 	siSpeakerVolume = FourCharCode('svol'); {volume level of built-in speaker}
529 	siSSpCPULoadLimit = FourCharCode('3dll');
530 	siSSpLocalization = FourCharCode('3dif');
531 	siSSpSpeakerSetup = FourCharCode('3dst');
532 	siStereoInputGain = FourCharCode('sgai'); {stereo input gain}
533 	siSubwooferMute = FourCharCode('bmut'); {mute state of sub-woofer}
534 	siTerminalType = FourCharCode('ttyp'); { usb terminal type }
535 	siTwosComplementOnOff = FourCharCode('twos'); {two's complement state}
536 	siVendorProduct = FourCharCode('vpro'); { vendor and product ID }
537 	siVolume = FourCharCode('volu'); {volume level of source}
538 	siVoxRecordInfo = FourCharCode('voxr'); {VOX record parameters}
539 	siVoxStopInfo = FourCharCode('voxs'); {VOX stop parameters}
540 	siWideStereo = FourCharCode('wide'); {wide stereo setting}
541 	siSupportedExtendedFlags = FourCharCode('exfl'); {which flags are supported in Extended sound data structures}
542 	siRateConverterRollOffSlope = FourCharCode('rcdb'); {the roll-off slope for the rate converter's filter, in whole dB as a long this value is a long whose range is from 20 (worst quality/fastest performance) to 90 (best quality/slowest performance)}
543 	siOutputLatency = FourCharCode('olte'); {latency of sound output component}
544 	siHALAudioDeviceID = FourCharCode('hlid'); {audio device id}
545 	siHALAudioDeviceUniqueID = FourCharCode('huid'); {audio device unique id}
546 	siClientAcceptsVBR = FourCharCode('cvbr'); {client handles VBR}
547 	siSourceIsExhausted = FourCharCode('srcx'); {the ultimate source of data has run out (keep asking, but when you get nothing, that's it)}
548 	siMediaContextID = FourCharCode('uuid'); {media context id -- UUID }
549 	siCompressionMaxPacketSize = FourCharCode('cmxp'); {maximum compressed packet size for current configuration -- unsigned long }
550 	siAudioCodecPropertyValue = FourCharCode('spva'); {audio codec property value -- SoundAudioCodecPropertyRequestParams* }
551 	siAudioCodecPropertyInfo = FourCharCode('spin'); {audio codec property info -- SoundAudioCodecPropertyRequestParams* }
552 
553 const
554 	siCloseDriver = FourCharCode('clos'); {reserved for internal use only}
555 	siInitializeDriver = FourCharCode('init'); {reserved for internal use only}
556 	siPauseRecording = FourCharCode('paus'); {reserved for internal use only}
557 	siUserInterruptProc = FourCharCode('user'); {reserved for internal use only}
558 
559 { input source Types}
560 const
561 	kInvalidSource = -1; {this source may be returned from GetInfo if no other source is the monitored source}
562 	kNoSource = FourCharCode('none'); {no source selection}
563 	kCDSource = FourCharCode('cd  '); {internal CD player input}
564 	kExtMicSource = FourCharCode('emic'); {external mic input}
565 	kSoundInSource = FourCharCode('sinj'); {sound input jack}
566 	kRCAInSource = FourCharCode('irca'); {RCA jack input}
567 	kTVFMTunerSource = FourCharCode('tvfm');
568 	kDAVInSource = FourCharCode('idav'); {DAV analog input}
569 	kIntMicSource = FourCharCode('imic'); {internal mic input}
570 	kMediaBaySource = FourCharCode('mbay'); {media bay input}
571 	kModemSource = FourCharCode('modm'); {modem input (internal modem on desktops, PCI input on PowerBooks)}
572 	kPCCardSource = FourCharCode('pcm '); {PC Card pwm input}
573 	kZoomVideoSource = FourCharCode('zvpc'); {zoom video input}
574 	kDVDSource = FourCharCode('dvda'); { DVD audio input}
575 	kMicrophoneArray = FourCharCode('mica'); { microphone array}
576 
577 {Sound Component Types and Subtypes}
578 const
579 	kNoSoundComponentType = FourCharCode('****');
580 	kSoundComponentType = FourCharCode('sift'); {component type}
581 	kSoundComponentPPCType = FourCharCode('nift'); {component type for PowerPC code}
582 	kRate8SubType = FourCharCode('ratb'); {8-bit rate converter}
583 	kRate16SubType = FourCharCode('ratw'); {16-bit rate converter}
584 	kConverterSubType = FourCharCode('conv'); {sample format converter}
585 	kSndSourceSubType = FourCharCode('sour'); {generic source component}
586 	kMixerType = FourCharCode('mixr');
587 	kMixer8SubType = FourCharCode('mixb'); {8-bit mixer}
588 	kMixer16SubType = FourCharCode('mixw'); {16-bit mixer}
589 	kSoundInputDeviceType = FourCharCode('sinp'); {sound input component}
590 	kWaveInSubType = FourCharCode('wavi'); {Windows waveIn}
591 	kWaveInSnifferSubType = FourCharCode('wisn'); {Windows waveIn sniffer}
592 	kSoundOutputDeviceType = FourCharCode('sdev'); {sound output component}
593 	kClassicSubType = FourCharCode('clas'); {classic hardware, i.e. Mac Plus}
594 	kASCSubType = FourCharCode('asc '); {Apple Sound Chip device}
595 	kDSPSubType = FourCharCode('dsp '); {DSP device}
596 	kAwacsSubType = FourCharCode('awac'); {Another of Will's Audio Chips device}
597 	kGCAwacsSubType = FourCharCode('awgc'); {Awacs audio with Grand Central DMA}
598 	kSingerSubType = FourCharCode('sing'); {Singer (via Whitney) based sound}
599 	kSinger2SubType = FourCharCode('sng2'); {Singer 2 (via Whitney) for Acme}
600 	kWhitSubType = FourCharCode('whit'); {Whit sound component for PrimeTime 3}
601 	kSoundBlasterSubType = FourCharCode('sbls'); {Sound Blaster for CHRP}
602 	kWaveOutSubType = FourCharCode('wavo'); {Windows waveOut}
603 	kWaveOutSnifferSubType = FourCharCode('wosn'); {Windows waveOut sniffer}
604 	kDirectSoundSubType = FourCharCode('dsnd'); {Windows DirectSound}
605 	kDirectSoundSnifferSubType = FourCharCode('dssn'); {Windows DirectSound sniffer}
606 	kUNIXsdevSubType = FourCharCode('un1x'); {UNIX base sdev}
607 	kUSBSubType = FourCharCode('usb '); {USB device}
608 	kBlueBoxSubType = FourCharCode('bsnd'); {Blue Box sound component}
609 	kHALCustomComponentSubType = FourCharCode('halx'); {Registered by the HAL output component ('hal!') for each HAL output device}
610 	kSoundCompressor = FourCharCode('scom');
611 	kSoundDecompressor = FourCharCode('sdec');
612 	kAudioComponentType = FourCharCode('adio'); {Audio components and sub-types}
613 	kAwacsPhoneSubType = FourCharCode('hphn');
614 	kAudioVisionSpeakerSubType = FourCharCode('telc');
615 	kAudioVisionHeadphoneSubType = FourCharCode('telh');
616 	kPhilipsFaderSubType = FourCharCode('tvav');
617 	kSGSToneSubType = FourCharCode('sgs0');
618 	kSoundEffectsType = FourCharCode('snfx'); {sound effects type}
619 	kEqualizerSubType = FourCharCode('eqal'); {frequency equalizer}
620 	kSSpLocalizationSubType = FourCharCode('snd3');
621 
622 {Format Types}
623 const
624 	kSoundNotCompressed = FourCharCode('NONE'); {sound is not compressed}
625 	k8BitOffsetBinaryFormat = FourCharCode('raw '); {8-bit offset binary}
626 	k16BitBigEndianFormat = FourCharCode('twos'); {16-bit big endian}
627 	k16BitLittleEndianFormat = FourCharCode('sowt'); {16-bit little endian}
628 	kFloat32Format = FourCharCode('fl32'); {32-bit floating point}
629 	kFloat64Format = FourCharCode('fl64'); {64-bit floating point}
630 	k24BitFormat = FourCharCode('in24'); {24-bit integer}
631 	k32BitFormat = FourCharCode('in32'); {32-bit integer}
632 	k32BitLittleEndianFormat = FourCharCode('23ni'); {32-bit little endian integer }
633 	kMACE3Compression = FourCharCode('MAC3'); {MACE 3:1}
634 	kMACE6Compression = FourCharCode('MAC6'); {MACE 6:1}
635 	kCDXA4Compression = FourCharCode('cdx4'); {CD/XA 4:1}
636 	kCDXA2Compression = FourCharCode('cdx2'); {CD/XA 2:1}
637 	kIMACompression = FourCharCode('ima4'); {IMA 4:1}
638 	kULawCompression = FourCharCode('ulaw'); {�Law 2:1}
639 	kALawCompression = FourCharCode('alaw'); {aLaw 2:1}
640 	kMicrosoftADPCMFormat = $6D730002; {Microsoft ADPCM - ACM code 2}
641 	kDVIIntelIMAFormat = $6D730011; {DVI/Intel IMA ADPCM - ACM code 17}
642 	kMicrosoftGSMCompression = $6D730031; {Microsoft GSM 6.10 - ACM code 49}
643 	kDVAudioFormat = FourCharCode('dvca'); {DV Audio}
644 	kQDesignCompression = FourCharCode('QDMC'); {QDesign music}
645 	kQDesign2Compression = FourCharCode('QDM2'); {QDesign2 music}
646 	kQUALCOMMCompression = FourCharCode('Qclp'); {QUALCOMM PureVoice}
647 	kOffsetBinary = k8BitOffsetBinaryFormat; {for compatibility}
648 	kTwosComplement = k16BitBigEndianFormat; {for compatibility}
649 	kLittleEndianFormat = k16BitLittleEndianFormat; {for compatibility}
650 	kMPEGLayer3Format = $6D730055; {MPEG Layer 3, CBR only (pre QT4.1)}
651 	kFullMPEGLay3Format = FourCharCode('.mp3'); {MPEG Layer 3, CBR & VBR (QT4.1 and later)}
652 	kVariableDurationDVAudioFormat = FourCharCode('vdva'); {Variable Duration DV Audio}
653 	kMPEG4AudioFormat = FourCharCode('mp4a');
654 
655 {$ifc TARGET_RT_LITTLE_ENDIAN}
656 const
657 	k16BitNativeEndianFormat = k16BitLittleEndianFormat;
658 	k16BitNonNativeEndianFormat = k16BitBigEndianFormat;
659 
660 {$elsec}
661 const
662 	k16BitNativeEndianFormat = k16BitBigEndianFormat;
663 	k16BitNonNativeEndianFormat = k16BitLittleEndianFormat;
664 
665 {$endc} {TARGET_RT_LITTLE_ENDIAN}
666 
667 {Features Flags}
668 const
669 	k8BitRawIn = 1 shl 0; {data description}
670 	k8BitTwosIn = 1 shl 1;
671 	k16BitIn = 1 shl 2;
672 	kStereoIn = 1 shl 3;
673 	k8BitRawOut = 1 shl 8;
674 	k8BitTwosOut = 1 shl 9;
675 	k16BitOut = 1 shl 10;
676 	kStereoOut = 1 shl 11;
677 	kReverse = 1 shl 16; {  function description}
678 	kRateConvert = 1 shl 17;
679 	kCreateSoundSource = 1 shl 18;
680 	kVMAwareness = 1 shl 21; { component will hold its memory}
681 	kHighQuality = 1 shl 22; {  performance description}
682 	kNonRealTime = 1 shl 23;
683 
684 {'snfo' Resource Feature Flags}
685 const
686 	kSoundCodecInfoFixedCompression = 1 shl 0; { has fixed compression format}
687 	kSoundCodecInfoVariableCompression = 1 shl 1; { has variable compression format}
688 	kSoundCodecInfoHasRestrictedInputRates = 1 shl 2; { compressor has restricted set of input sample rates}
689 	kSoundCodecInfoCanChangeOutputRate = 1 shl 3; { compressor may output a different sample rate than it receives}
690 	kSoundCodecInfoRequiresExternalFraming = 1 shl 4; { format requires external framing information during decode/encode}
691 	kSoundCodecInfoVariableDuration = 1 shl 5; { audio packets can vary in duration}
692 
693 {SoundComponentPlaySourceBuffer action flags}
694 const
695 	kSourcePaused = 1 shl 0;
696 	kPassThrough = 1 shl 16;
697 	kNoSoundComponentChain = 1 shl 17;
698 
699 {SoundParamBlock flags, usefull for OpenMixerSoundComponent}
700 const
701 	kNoMixing = 1 shl 0; {don't mix source}
702 	kNoSampleRateConversion = 1 shl 1; {don't convert sample rate (i.e. 11 kHz -> 22 kHz)}
703 	kNoSampleSizeConversion = 1 shl 2; {don't convert sample size (i.e. 16 -> 8)}
704 	kNoSampleFormatConversion = 1 shl 3; {don't convert sample format (i.e. 'twos' -> 'raw ')}
705 	kNoChannelConversion = 1 shl 4; {don't convert stereo/mono}
706 	kNoDecompression = 1 shl 5; {don't decompress (i.e. 'MAC3' -> 'raw ')}
707 	kNoVolumeConversion = 1 shl 6; {don't apply volume}
708 	kNoRealtimeProcessing = 1 shl 7; {won't run at interrupt time}
709 	kScheduledSource = 1 shl 8; {source is scheduled}
710 	kNonInterleavedBuffer = 1 shl 9; {buffer is not interleaved samples}
711 	kNonPagingMixer = 1 shl 10; {if VM is on, use the non-paging mixer}
712 	kSoundConverterMixer = 1 shl 11; {the mixer is to be used by the SoundConverter}
713 	kPagingMixer = 1 shl 12; {the mixer is to be used as a paging mixer when VM is on}
714 	kVMAwareMixer = 1 shl 13; {passed to the output device when the SM is going to deal with VM safety}
715 	kExtendedSoundData = 1 shl 14; {SoundComponentData record is actually an ExtendedSoundComponentData}
716 
717 {SoundParamBlock quality settings}
718 const
719 	kBestQuality = 1 shl 0; {use interpolation in rate conversion}
720 
721 {useful bit masks}
722 const
723 	kInputMask = $000000FF; {masks off input bits}
724 	kOutputMask = $0000FF00; {masks off output bits}
725 	kOutputShift = 8;    {amount output bits are shifted}
726 	kActionMask = $00FF0000; {masks off action bits}
727 	kSoundComponentBits = $00FFFFFF;
728 
729 {audio atom types}
730 const
731 	kAudioFormatAtomType = FourCharCode('frma');
732 	kAudioEndianAtomType = FourCharCode('enda');
733 	kAudioVBRAtomType = FourCharCode('vbra');
734 	kAudioTerminatorAtomType = 0;
735 
736 {siAVDisplayBehavior types}
737 const
738 	kAVDisplayHeadphoneRemove = 0;    { monitor does not have a headphone attached}
739 	kAVDisplayHeadphoneInsert = 1;    { monitor has a headphone attached}
740 	kAVDisplayPlainTalkRemove = 2;    { monitor either sending no input through CPU input port or unable to tell if input is coming in}
741 	kAVDisplayPlainTalkInsert = 3;     { monitor sending PlainTalk level microphone source input through sound input port}
742 
743 {Audio Component constants}
744 const
745 {Values for whichChannel parameter}
746 	audioAllChannels = 0;    {All channels (usually interpreted as both left and right)}
747 	audioLeftChannel = 1;    {Left channel}
748 	audioRightChannel = 2;    {Right channel}
749                                         {Values for mute parameter}
750 	audioUnmuted = 0;    {Device is unmuted}
751 	audioMuted = 1;    {Device is muted}
752                                         {Capabilities flags definitions}
753 	audioDoesMono = 1 shl 0; {Device supports mono output}
754 	audioDoesStereo = 1 shl 1; {Device supports stereo output}
755 	audioDoesIndependentChannels = 1 shl 2; {Device supports independent software control of each channel}
756 
757 {Sound Input Qualities}
758 const
759 	siCDQuality = FourCharCode('cd  '); {44.1kHz, stereo, 16 bit}
760 	siBestQuality = FourCharCode('best'); {22kHz, mono, 8 bit}
761 	siBetterQuality = FourCharCode('betr'); {22kHz, mono, MACE 3:1}
762 	siGoodQuality = FourCharCode('good'); {22kHz, mono, MACE 6:1}
763 	siNoneQuality = FourCharCode('none'); {settings don't match any quality for a get call}
764 
765 const
766 	siDeviceIsConnected = 1;    {input device is connected and ready for input}
767 	siDeviceNotConnected = 0;    {input device is not connected}
768 	siDontKnowIfConnected = -1;   {can't tell if input device is connected}
769 	siReadPermission = 0;    {permission passed to SPBOpenDevice}
770 	siWritePermission = 1;     {permission passed to SPBOpenDevice}
771 
772 {flags that SoundConverterFillBuffer will return}
773 const
774 	kSoundConverterDidntFillBuffer = 1 shl 0; {set if the converter couldn't completely satisfy a SoundConverterFillBuffer request}
775 	kSoundConverterHasLeftOverData = 1 shl 1; {set if the converter had left over data after completely satisfying a SoundConverterFillBuffer call}
776 
777 { flags for extendedFlags fields of ExtendedSoundComponentData, ExtendedSoundParamBlock, and ExtendedScheduledSoundHeader}
778 const
779 	kExtendedSoundSampleCountNotValid = 1 shl 0; { set if sampleCount of SoundComponentData isn't meaningful; use buffer size instead}
780 	kExtendedSoundBufferSizeValid = 1 shl 1; { set if bufferSize field is valid}
781 	kExtendedSoundFrameSizesValid = 1 shl 2; { set if frameSizesArray is valid (will be nil if all sizes are common and kExtendedSoundCommonFrameSizeValid is set}
782 	kExtendedSoundCommonFrameSizeValid = 1 shl 3; { set if all audio frames have the same size and the commonFrameSize field is valid}
783 	kExtendedSoundExtensionsValid = 1 shl 4; { set if pointer to extensions array is valid}
784 	kExtendedSoundBufferFlagsValid = 1 shl 5; { set if buffer flags field is valid}
785 
786 { flags passed in bufferFlags/bufferFlagsMask extended fields if kExtendedSoundBufferFlagsValid extended flag is set}
787 const
788 	kExtendedSoundBufferIsDiscontinuous = 1 shl 0; { buffer is discontinuous with previous buffer}
789 	kExtendedSoundBufferIsFirstBuffer = 1 shl 1; { buffer is first buffer}
790 
791 {
792   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
793    typedefs
794   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
795 }
796 
797 type
798 	SndCommandPtr = ^SndCommand;
799 	SndCommand = record
800 		cmd: UInt16;
801 		param1: SInt16;
802 		param2: SIGNEDLONG;
803 	end;
804 type
805 	SndChannelPtr = ^SndChannel;
806 	SndCallBackProcPtr = procedure( chan: SndChannelPtr; var cmd: SndCommand );
807 	SndCallBackUPP = SndCallBackProcPtr;
808 	SndChannel = record
809 		nextChan: SndChannelPtr;
810 		firstMod: Ptr;               { reserved for the Sound Manager }
811 		callBack: SndCallBackUPP;
812 		userInfo: SIGNEDLONG;
813 		wait: SIGNEDLONG;                   { The following is for internal Sound Manager use only.}
814 		cmdInProgress: SndCommand;
815 		flags: SInt16;
816 		qLength: SInt16;
817 		qHead: SInt16;
818 		qTail: SInt16;
819 		queue: array [0..127] of SndCommand;
820 	end;
821 
822 {
823  *  NewSndCallBackUPP()
824  *
825  *  Availability:
826  *    Mac OS X:         in version 10.0 and later in Carbon.framework
827  *    CarbonLib:        in CarbonLib 1.0 and later
828  *    Non-Carbon CFM:   available as macro/inline
829  }
NewSndCallBackUPPnull830 function NewSndCallBackUPP( userRoutine: SndCallBackProcPtr ): SndCallBackUPP; external name '_NewSndCallBackUPP';
831 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
832 
833 {
834  *  DisposeSndCallBackUPP()
835  *
836  *  Availability:
837  *    Mac OS X:         in version 10.0 and later in Carbon.framework
838  *    CarbonLib:        in CarbonLib 1.0 and later
839  *    Non-Carbon CFM:   available as macro/inline
840  }
841 procedure DisposeSndCallBackUPP( userUPP: SndCallBackUPP ); external name '_DisposeSndCallBackUPP';
842 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
843 
844 {
845  *  InvokeSndCallBackUPP()
846  *
847  *  Availability:
848  *    Mac OS X:         in version 10.0 and later in Carbon.framework
849  *    CarbonLib:        in CarbonLib 1.0 and later
850  *    Non-Carbon CFM:   available as macro/inline
851  }
852 procedure InvokeSndCallBackUPP( chan: SndChannelPtr; var cmd: SndCommand; userUPP: SndCallBackUPP ); external name '_InvokeSndCallBackUPP';
853 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
854 
855 {MACE structures}
856 type
857 	StateBlock = record
858 		stateVar: array [0..63] of SInt16;
859 	end;
860 	StateBlockPtr = ^StateBlock;
861 type
862 	LeftOverBlock = record
863 		count: UNSIGNEDLONG;
864 		sampleArea: array [0..31] of SInt8;
865 	end;
866 	LeftOverBlockPtr = ^LeftOverBlock;
867 type
868 	ModRef = record
869 		modNumber: UInt16;
870 		modInit: SIGNEDLONG;
871 	end;
872 type
873 	SndListResourcePtr = ^SndListResource;
874 	SndListResource = record
875 		format: SInt16;
876 		numModifiers: SInt16;
877 		modifierPart: array [0..0] of ModRef;
878 		numCommands: SInt16;
879 		commandPart: array [0..0] of SndCommand;
880 		dataPart: UInt8;
881 	end;
882 type
883 	SndListPtr = SndListResourcePtr;
884 	SndListHandle = ^SndListPtr;
885 	SndListHndl = SndListHandle;
886 {HyperCard sound resource format}
887 type
888 	Snd2ListResourcePtr = ^Snd2ListResource;
889 	Snd2ListResource = record
890 		format: SInt16;
891 		refCount: SInt16;
892 		numCommands: SInt16;
893 		commandPart: array [0..0] of SndCommand;
894 		dataPart: UInt8;
895 	end;
896 type
897 	Snd2ListPtr = Snd2ListResourcePtr;
898 	Snd2ListHandle = ^Snd2ListPtr;
899 	Snd2ListHndl = Snd2ListHandle;
900 	SoundHeader = record
901 		samplePtr: Ptr;              {if NIL then samples are in sampleArea}
902 		length: UNSIGNEDLONG;                 {length of sound in bytes}
903 		sampleRate: UnsignedFixed;             {sample rate for this sound}
904 		loopStart: UNSIGNEDLONG;              {start of looping portion}
905 		loopEnd: UNSIGNEDLONG;                {end of looping portion}
906 		encode: UInt8;                 {header encoding}
907 		baseFrequency: UInt8;          {baseFrequency value}
908 		sampleArea: array [0..0] of UInt8;          {space for when samples follow directly}
909 		pad: UInt8;
910 	end;
911 	SoundHeaderPtr = ^SoundHeader;
912 type
913 	CmpSoundHeader = record
914 		samplePtr: Ptr;              {if nil then samples are in sample area}
915 		numChannels: UNSIGNEDLONG;            {number of channels i.e. mono = 1}
916 		sampleRate: UnsignedFixed;             {sample rate in Apples Fixed point representation}
917 		loopStart: UNSIGNEDLONG;              {loopStart of sound before compression}
918 		loopEnd: UNSIGNEDLONG;                {loopEnd of sound before compression}
919 		encode: UInt8;                 {data structure used , stdSH, extSH, or cmpSH}
920 		baseFrequency: UInt8;          {same meaning as regular SoundHeader}
921 		numFrames: UNSIGNEDLONG;              {length in frames ( packetFrames or sampleFrames )}
922 		AIFFSampleRate: extended80;         {IEEE sample rate}
923 		markerChunk: Ptr;            {sync track}
924 		format: OSType;                 {data format type, was futureUse1}
925 		futureUse2: UNSIGNEDLONG;             {reserved by Apple}
926 		stateVars: StateBlockPtr;              {pointer to State Block}
927 		leftOverSamples: LeftOverBlockPtr;        {used to save truncated samples between compression calls}
928 		compressionID: SInt16;          {0 means no compression, non zero means compressionID}
929 		packetSize: UInt16;             {number of bits in compressed sample packet}
930 		snthID: UInt16;                 {resource ID of Sound Manager snth that contains NRT C/E}
931 		sampleSize: UInt16;             {number of bits in non-compressed sample}
932 		sampleArea: array [0..0] of UInt8;          {space for when samples follow directly}
933 		pad: UInt8;
934 	end;
935 	CmpSoundHeaderPtr = ^CmpSoundHeader;
936 type
937 	ExtSoundHeader = record
938 		samplePtr: Ptr;              {if nil then samples are in sample area}
939 		numChannels: UNSIGNEDLONG;            {number of channels,  ie mono = 1}
940 		sampleRate: UnsignedFixed;             {sample rate in Apples Fixed point representation}
941 		loopStart: UNSIGNEDLONG;              {same meaning as regular SoundHeader}
942 		loopEnd: UNSIGNEDLONG;                {same meaning as regular SoundHeader}
943 		encode: UInt8;                 {data structure used , stdSH, extSH, or cmpSH}
944 		baseFrequency: UInt8;          {same meaning as regular SoundHeader}
945 		numFrames: UNSIGNEDLONG;              {length in total number of frames}
946 		AIFFSampleRate: extended80;         {IEEE sample rate}
947 		markerChunk: Ptr;            {sync track}
948 		instrumentChunks: Ptr;       {AIFF instrument chunks}
949 		AESRecording: Ptr;
950 		sampleSize: UInt16;             {number of bits in sample}
951 		futureUse1: UInt16;             {reserved by Apple}
952 		futureUse2: UNSIGNEDLONG;             {reserved by Apple}
953 		futureUse3: UNSIGNEDLONG;             {reserved by Apple}
954 		futureUse4: UNSIGNEDLONG;             {reserved by Apple}
955 		sampleArea: array [0..0] of UInt8;          {space for when samples follow directly}
956 		pad:					UInt8;
957 	end;
958 	ExtSoundHeaderPtr = ^ExtSoundHeader;
959 type
960 	SoundHeaderUnionPtr = ^SoundHeaderUnion;
961 	SoundHeaderUnion = record
962 		case SInt16 of
963 		0: (
964 			stdHeader:			SoundHeader;
965 			);
966 		1: (
967 			cmpHeader:			CmpSoundHeader;
968 			);
969 		2: (
970 			extHeader:			ExtSoundHeader;
971 			);
972 	end;
973 
974 	ConversionBlock = record
975 		destination: SInt16;
976 		unused: SInt16;
977 		inputPtr: CmpSoundHeaderPtr;
978 		outputPtr: CmpSoundHeaderPtr;
979 	end;
980 	ConversionBlockPtr = ^ConversionBlock;
981 { ScheduledSoundHeader flags}
982 const
983 	kScheduledSoundDoScheduled = 1 shl 0;
984 	kScheduledSoundDoCallBack = 1 shl 1;
985 	kScheduledSoundExtendedHdr = 1 shl 2;
986 
987 type
988 	ScheduledSoundHeader = record
989 		u: SoundHeaderUnion;
990 		flags: SIGNEDLONG;
991 		reserved: SInt16;
992 		callBackParam1: SInt16;
993 		callBackParam2: SIGNEDLONG;
994 		startTime: TimeRecord;
995 	end;
996 	ScheduledSoundHeaderPtr = ^ScheduledSoundHeader;
997 type
998 	ExtendedScheduledSoundHeader = record
999 		u: SoundHeaderUnion;
1000 		flags: SIGNEDLONG;
1001 		reserved: SInt16;
1002 		callBackParam1: SInt16;
1003 		callBackParam2: SIGNEDLONG;
1004 		startTime: TimeRecord;
1005 		recordSize: SIGNEDLONG;
1006 		extendedFlags: SIGNEDLONG;
1007 		bufferSize: SIGNEDLONG;
1008 		frameCount: SIGNEDLONG;             { number of audio frames}
1009 		frameSizesArray: SIGNEDLONGPtr;        { pointer to array of longs with frame sizes in bytes}
1010 		commonFrameSize: SIGNEDLONG;        { size of each frame if common}
1011 		extensionsPtr: UnivPtr;          {pointer to set of classic atoms (size,type,data,...)}
1012 		extensionsSize: SIGNEDLONG;         {size of extensions data (extensionsPtr)}
1013 		bufferFlags: UNSIGNEDLONG;            {set or cleared flags}
1014 		bufferFlagsMask: UNSIGNEDLONG;        {which flags are valid}
1015 	end;
1016 	ExtendedScheduledSoundHeaderPtr = ^ExtendedScheduledSoundHeader;
1017 type
1018 	SMStatus = record
1019 		smMaxCPULoad: SInt16;
1020 		smNumChannels: SInt16;
1021 		smCurCPULoad: SInt16;
1022 	end;
1023 	SMStatusPtr = ^SMStatus;
1024 type
1025 	SCStatus = record
1026 		scStartTime: UnsignedFixed;
1027 		scEndTime: UnsignedFixed;
1028 		scCurrentTime: UnsignedFixed;
1029 		scChannelBusy: Boolean;
1030 		scChannelDisposed: Boolean;
1031 		scChannelPaused: Boolean;
1032 		scUnused: Boolean;
1033 		scChannelAttributes: UNSIGNEDLONG;
1034 		scCPULoad: SIGNEDLONG;
1035 	end;
1036 	SCStatusPtr = ^SCStatus;
1037 type
1038 	AudioSelection = record
1039 		unitType: SIGNEDLONG;
1040 		selStart: UnsignedFixed;
1041 		selEnd: UnsignedFixed;
1042 	end;
1043 	AudioSelectionPtr = ^AudioSelection;
1044 {$ifc CALL_NOT_IN_CARBON}
1045 type
1046 	SndDoubleBuffer = record
1047 		dbNumFrames: SIGNEDLONG;
1048 		dbFlags: SIGNEDLONG;
1049 		dbUserInfo: array [0..1] of SInt32;
1050 		dbSoundData: array [0..0] of SInt8;
1051 	end;
1052 	SndDoubleBufferPtr = ^SndDoubleBuffer;
1053 
1054 
1055 type
1056 	SndDoubleBackProcPtr = procedure( channel: SndChannelPtr; doubleBufferPtr: SndDoubleBufferPtr );
1057 	SndDoubleBackUPP = SndDoubleBackProcPtr;
1058 {
1059  *  NewSndDoubleBackUPP()
1060  *
1061  *  Availability:
1062  *    Mac OS X:         not available
1063  *    CarbonLib:        not available
1064  *    Non-Carbon CFM:   available as macro/inline
1065  }
1066 
1067 {
1068  *  DisposeSndDoubleBackUPP()
1069  *
1070  *  Availability:
1071  *    Mac OS X:         not available
1072  *    CarbonLib:        not available
1073  *    Non-Carbon CFM:   available as macro/inline
1074  }
1075 
1076 {
1077  *  InvokeSndDoubleBackUPP()
1078  *
1079  *  Availability:
1080  *    Mac OS X:         not available
1081  *    CarbonLib:        not available
1082  *    Non-Carbon CFM:   available as macro/inline
1083  }
1084 
1085 type
1086 	SndDoubleBufferHeader = record
1087 		dbhNumChannels: SInt16;
1088 		dbhSampleSize: SInt16;
1089 		dbhCompressionID: SInt16;
1090 		dbhPacketSize: SInt16;
1091 		dbhSampleRate: UnsignedFixed;
1092 		dbhBufferPtr: array [0..1] of SndDoubleBufferPtr;
1093 		dbhDoubleBack: SndDoubleBackUPP;
1094 	end;
1095 	SndDoubleBufferHeaderPtr = ^SndDoubleBufferHeader;
1096 type
1097 	SndDoubleBufferHeader2 = record
1098 		dbhNumChannels: SInt16;
1099 		dbhSampleSize: SInt16;
1100 		dbhCompressionID: SInt16;
1101 		dbhPacketSize: SInt16;
1102 		dbhSampleRate: UnsignedFixed;
1103 		dbhBufferPtr:			array [0..1] of SndDoubleBufferPtr;
1104 		dbhDoubleBack: SndDoubleBackUPP;
1105 		dbhFormat: OSType;
1106 	end;
1107 	SndDoubleBufferHeader2Ptr = ^SndDoubleBufferHeader2;
1108 {$endc} {CALL_NOT_IN_CARBON}
1109 
1110 type
1111 	SoundInfoList = record
1112 		count: SInt16;
1113 		infoHandle: Handle;
1114 	end;
1115 	SoundInfoListPtr = ^SoundInfoList;
1116 type
1117 	SoundComponentData = record
1118 		flags: SIGNEDLONG;
1119 		format: OSType;
1120 		numChannels: SInt16;
1121 		sampleSize: SInt16;
1122 		sampleRate: UnsignedFixed;
1123 		sampleCount: SIGNEDLONG;
1124 		buffer: BytePtr;
1125 		reserved: SIGNEDLONG;
1126 	end;
1127 	SoundComponentDataPtr = ^SoundComponentData;
1128 type
1129 	ExtendedSoundComponentData = record
1130 		desc: SoundComponentData;                   {description of sound buffer}
1131 		recordSize: SIGNEDLONG;             {size of this record in bytes}
1132 		extendedFlags: SIGNEDLONG;          {flags for extended record}
1133 		bufferSize: SIGNEDLONG;             {size of buffer in bytes}
1134 		frameCount: SIGNEDLONG;             {number of audio frames}
1135 		frameSizesArray: SIGNEDLONGPtr;        {pointer to array of longs with frame sizes in bytes}
1136 		commonFrameSize: SIGNEDLONG;        {size of each frame if common}
1137 		extensionsPtr: UnivPtr;          {pointer to set of classic atoms (size,type,data,...)}
1138 		extensionsSize: SIGNEDLONG;         {size of extensions data (extensionsPtr)}
1139 		bufferFlags: UNSIGNEDLONG;            {set or cleared flags}
1140 		bufferFlagsMask: UNSIGNEDLONG;        {which flags are valid}
1141 	end;
1142 	ExtendedSoundComponentDataPtr = ^ExtendedSoundComponentData;
1143 type
1144 	SoundParamBlockPtr = ^SoundParamBlock;
varnull1145 	SoundParamProcPtr = function( var pb: SoundParamBlockPtr ): Boolean;
1146 	SoundParamUPP = SoundParamProcPtr;
1147 	SoundParamBlock = record
1148 		recordSize: SIGNEDLONG;             {size of this record in bytes}
1149 		desc: SoundComponentData;                   {description of sound buffer}
1150 		rateMultiplier: UnsignedFixed;         {rate multiplier to apply to sound}
1151 		leftVolume: SInt16;             {volumes to apply to sound}
1152 		rightVolume: SInt16;
1153 		quality: SIGNEDLONG;                {quality to apply to sound}
1154 		filter: ComponentInstance;                 {filter to apply to sound}
1155 		moreRtn: SoundParamUPP;                {routine to call to get more data}
1156 		completionRtn: SoundParamUPP;          {routine to call when buffer is complete}
1157 		refCon: SIGNEDLONG;                 {user refcon}
1158 		result: SInt16;                 {result}
1159 	end;
1160 
1161 type
1162 	ExtendedSoundParamBlock = record
1163 		pb: SoundParamBlock;                     {classic SoundParamBlock except recordSize == sizeof(ExtendedSoundParamBlock)}
1164 		reserved: SInt16;
1165 		extendedFlags: SIGNEDLONG;          {flags}
1166 		bufferSize: SIGNEDLONG;             {size of buffer in bytes}
1167 		frameCount: SIGNEDLONG;             {number of audio frames}
1168 		frameSizesArray: SIGNEDLONGPtr;        {pointer to array of longs with frame sizes in bytes}
1169 		commonFrameSize: SIGNEDLONG;        {size of each frame if common}
1170 		extensionsPtr: UnivPtr;          {pointer to set of classic atoms (size,type,data,...)}
1171 		extensionsSize: SIGNEDLONG;         {size of extensions data (extensionsPtr)}
1172 		bufferFlags: UNSIGNEDLONG;            {set or cleared flags}
1173 		bufferFlagsMask: UNSIGNEDLONG;        {which flags are valid}
1174 	end;
1175 	ExtendedSoundParamBlockPtr = ^ExtendedSoundParamBlock;
1176 type
1177 	CompressionInfo = record
1178 		recordSize: SIGNEDLONG;
1179 		format: OSType;
1180 		compressionID: SInt16;
1181 		samplesPerPacket: UInt16;
1182 		bytesPerPacket: UInt16;
1183 		bytesPerFrame: UInt16;
1184 		bytesPerSample: UInt16;
1185 		futureUse1: UInt16;
1186 	end;
1187 	CompressionInfoPtr = ^CompressionInfo;
1188 type
1189 	CompressionInfoHandle = ^CompressionInfoPtr;
1190 {variables for floating point conversion}
1191 type
1192 	SoundSlopeAndInterceptRecordPtr = ^SoundSlopeAndInterceptRecord;
1193 	SoundSlopeAndInterceptRecord = record
1194 		slope: Float64;
1195 		intercept: Float64;
1196 		minClip: Float64;
1197 		maxClip: Float64;
1198 	end;
1199 type
1200 	SoundSlopeAndInterceptPtr = SoundSlopeAndInterceptRecordPtr;
1201 {private thing to use as a reference to a Sound Converter}
1202 type
1203 	SoundConverter = ^OpaqueSoundConverter; { an opaque type }
1204 	OpaqueSoundConverter = record end;
1205 	SoundConverterPtr = ^SoundConverter;  { when a var xx:SoundConverter parameter can be nil, it is changed to xx: SoundConverterPtr }
1206 {callback routine to provide data to the Sound Converter}
1207 type
varnull1208 	SoundConverterFillBufferDataProcPtr = function( var data: SoundComponentDataPtr; refCon: UnivPtr ): Boolean;
1209 	SoundConverterFillBufferDataUPP = SoundConverterFillBufferDataProcPtr;
1210 {private thing to use as a reference to a Sound Source}
1211 type
1212 	SoundSource = ^OpaqueSoundSource; { an opaque type }
1213 	OpaqueSoundSource = record end;
1214 	SoundSourcePtr = ^SoundSource;
1215 
1216 
1217 type
1218 	SoundComponentLink = record
1219 		description: ComponentDescription;          {Describes the sound component}
1220 		mixerID: SoundSource;                {Reserved by Apple}
1221 		linkID: SoundSourcePtr;                 {Reserved by Apple}
1222 	end;
1223 	SoundComponentLinkPtr = ^SoundComponentLink;
1224 type
1225 	AudioInfo = record
1226 		capabilitiesFlags: SIGNEDLONG;      {Describes device capabilities}
1227 		reserved: SIGNEDLONG;               {Reserved by Apple}
1228 		numVolumeSteps: UInt16;         {Number of significant increments between min and max volume}
1229 	end;
1230 	AudioInfoPtr = ^AudioInfo;
1231 type
1232 	AudioFormatAtom = record
1233 		size: SIGNEDLONG;                   { = sizeof(AudioFormatAtom)}
1234 		atomType: OSType;               { = kAudioFormatAtomType}
1235 		format: OSType;
1236 	end;
1237 	AudioFormatAtomPtr = ^AudioFormatAtom;
1238 type
1239 	AudioEndianAtom = record
1240 		size: SIGNEDLONG;                   { = sizeof(AudioEndianAtom)}
1241 		atomType: OSType;               { = kAudioEndianAtomType}
1242 		littleEndian: SInt16;
1243 	end;
1244 	AudioEndianAtomPtr = ^AudioEndianAtom;
1245 type
1246 	AudioTerminatorAtom = record
1247 		size: SIGNEDLONG;                   { = sizeof(AudioTerminatorAtom)}
1248 		atomType: OSType;               { = kAudioTerminatorAtomType}
1249 	end;
1250 	AudioTerminatorAtomPtr = ^AudioTerminatorAtom;
1251 type
1252 	LevelMeterInfo = record
1253 		numChannels: SInt16;            { mono or stereo source}
1254 		leftMeter: UInt8;              { 0-255 range}
1255 		rightMeter: UInt8;             { 0-255 range}
1256 	end;
1257 	LevelMeterInfoPtr = ^LevelMeterInfo;
1258 type
1259 	EQSpectrumBandsRecord = record
1260 		count: SInt16;
1261 		frequency: UnsignedFixedPtr;              { pointer to array of frequencies}
1262 	end;
1263 	EQSpectrumBandsRecordPtr = ^EQSpectrumBandsRecord;
1264 const
1265 	kSoundAudioCodecPropertyWritableFlag = 1 shl 0;
1266 
1267 type
1268 	SoundAudioCodecPropertyRequestParams = record
1269 		propertyClass: UInt32;
1270 		propertyID: UInt32;
1271 		propertyDataSize: UInt32;       { out -- GetPropertyInfo, in/out -- GetProperty, in -- SetProperty}
1272 		propertyData: UnivPtr;           { in -- GetPropertyInfo, GetProperty, SetProperty}
1273 		propertyRequestFlags: UInt32;   { out -- GetPropertyInfo}
1274 		propertyDataType: UInt32;       { out -- GetPropertyInfo, often 0}
1275 		propertyRequestResult: ComponentResult;  { out -- GetPropertyInfo, GetProperty, SetProperty}
1276 	end;
1277 
1278 
1279 { Sound Input Structures}
1280 type
1281 	SPBPtr = ^SPB;
1282 
1283 
1284 {user procedures called by sound input routines}
1285 	SIInterruptProcPtr = procedure( inParamPtr: SPBPtr; dataBuffer: Ptr; peakAmplitude: SInt16; sampleSize: SIGNEDLONG );
1286 	SICompletionProcPtr = procedure( inParamPtr: SPBPtr );
1287 	SIInterruptUPP = SIInterruptProcPtr;
1288 	SICompletionUPP = SICompletionProcPtr;
1289 
1290 
1291 {Sound Input Parameter Block}
1292 	SPB = record
1293 		inRefNum: SIGNEDLONG;               {reference number of sound input device}
1294 		count: UNSIGNEDLONG;                  {number of bytes to record}
1295 		milliseconds: UNSIGNEDLONG;           {number of milliseconds to record}
1296 		bufferLength: UNSIGNEDLONG;           {length of buffer in bytes}
1297 		bufferPtr: Ptr;              {buffer to store sound data in}
1298 		completionRoutine: SICompletionUPP;      {completion routine}
1299 		interruptRoutine: SIInterruptUPP;       {interrupt routine}
1300 		userLong: SIGNEDLONG;               {user-defined field}
1301 		error: OSErr;                  {error}
1302 		unused1: SIGNEDLONG;                {reserved - must be zero}
1303 	end;
1304 
1305 {
1306  *  NewSoundParamUPP()
1307  *
1308  *  Availability:
1309  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1310  *    CarbonLib:        in CarbonLib 1.0 and later
1311  *    Non-Carbon CFM:   available as macro/inline
1312  }
NewSoundParamUPPnull1313 function NewSoundParamUPP( userRoutine: SoundParamProcPtr ): SoundParamUPP; external name '_NewSoundParamUPP';
1314 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1315 
1316 {
1317  *  NewSoundConverterFillBufferDataUPP()
1318  *
1319  *  Availability:
1320  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1321  *    CarbonLib:        in CarbonLib 1.1 and later
1322  *    Non-Carbon CFM:   available as macro/inline
1323  }
NewSoundConverterFillBufferDataUPPnull1324 function NewSoundConverterFillBufferDataUPP( userRoutine: SoundConverterFillBufferDataProcPtr ): SoundConverterFillBufferDataUPP; external name '_NewSoundConverterFillBufferDataUPP';
1325 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1326 
1327 {
1328  *  NewSIInterruptUPP()
1329  *
1330  *  Availability:
1331  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1332  *    CarbonLib:        in CarbonLib 1.0 and later
1333  *    Non-Carbon CFM:   available as macro/inline
1334  }
NewSIInterruptUPPnull1335 function NewSIInterruptUPP( userRoutine: SIInterruptProcPtr ): SIInterruptUPP; external name '_NewSIInterruptUPP';
1336 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1337 
1338 {
1339  *  NewSICompletionUPP()
1340  *
1341  *  Availability:
1342  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1343  *    CarbonLib:        in CarbonLib 1.0 and later
1344  *    Non-Carbon CFM:   available as macro/inline
1345  }
NewSICompletionUPPnull1346 function NewSICompletionUPP( userRoutine: SICompletionProcPtr ): SICompletionUPP; external name '_NewSICompletionUPP';
1347 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1348 
1349 {
1350  *  DisposeSoundParamUPP()
1351  *
1352  *  Availability:
1353  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1354  *    CarbonLib:        in CarbonLib 1.0 and later
1355  *    Non-Carbon CFM:   available as macro/inline
1356  }
1357 procedure DisposeSoundParamUPP( userUPP: SoundParamUPP ); external name '_DisposeSoundParamUPP';
1358 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1359 
1360 {
1361  *  DisposeSoundConverterFillBufferDataUPP()
1362  *
1363  *  Availability:
1364  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1365  *    CarbonLib:        in CarbonLib 1.1 and later
1366  *    Non-Carbon CFM:   available as macro/inline
1367  }
1368 procedure DisposeSoundConverterFillBufferDataUPP( userUPP: SoundConverterFillBufferDataUPP ); external name '_DisposeSoundConverterFillBufferDataUPP';
1369 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1370 
1371 {
1372  *  DisposeSIInterruptUPP()
1373  *
1374  *  Availability:
1375  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1376  *    CarbonLib:        in CarbonLib 1.0 and later
1377  *    Non-Carbon CFM:   available as macro/inline
1378  }
1379 procedure DisposeSIInterruptUPP( userUPP: SIInterruptUPP ); external name '_DisposeSIInterruptUPP';
1380 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1381 
1382 {
1383  *  DisposeSICompletionUPP()
1384  *
1385  *  Availability:
1386  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1387  *    CarbonLib:        in CarbonLib 1.0 and later
1388  *    Non-Carbon CFM:   available as macro/inline
1389  }
1390 procedure DisposeSICompletionUPP( userUPP: SICompletionUPP ); external name '_DisposeSICompletionUPP';
1391 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1392 
1393 {
1394  *  InvokeSoundParamUPP()
1395  *
1396  *  Availability:
1397  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1398  *    CarbonLib:        in CarbonLib 1.0 and later
1399  *    Non-Carbon CFM:   available as macro/inline
1400  }
InvokeSoundParamUPPnull1401 function InvokeSoundParamUPP( var pb: SoundParamBlockPtr; userUPP: SoundParamUPP ): Boolean; external name '_InvokeSoundParamUPP';
1402 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1403 
1404 {
1405  *  InvokeSoundConverterFillBufferDataUPP()
1406  *
1407  *  Availability:
1408  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1409  *    CarbonLib:        in CarbonLib 1.1 and later
1410  *    Non-Carbon CFM:   available as macro/inline
1411  }
InvokeSoundConverterFillBufferDataUPPnull1412 function InvokeSoundConverterFillBufferDataUPP( var data: SoundComponentDataPtr; refCon: UnivPtr; userUPP: SoundConverterFillBufferDataUPP ): Boolean; external name '_InvokeSoundConverterFillBufferDataUPP';
1413 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1414 
1415 {
1416  *  InvokeSIInterruptUPP()
1417  *
1418  *  Availability:
1419  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1420  *    CarbonLib:        in CarbonLib 1.0 and later
1421  *    Non-Carbon CFM:   available as macro/inline
1422  }
1423 procedure InvokeSIInterruptUPP( inParamPtr: SPBPtr; dataBuffer: Ptr; peakAmplitude: SInt16; sampleSize: SIGNEDLONG; userUPP: SIInterruptUPP ); external name '_InvokeSIInterruptUPP';
1424 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1425 
1426 {
1427  *  InvokeSICompletionUPP()
1428  *
1429  *  Availability:
1430  *    Mac OS X:         in version 10.0 and later in Carbon.framework
1431  *    CarbonLib:        in CarbonLib 1.0 and later
1432  *    Non-Carbon CFM:   available as macro/inline
1433  }
1434 procedure InvokeSICompletionUPP( inParamPtr: SPBPtr; userUPP: SICompletionUPP ); external name '_InvokeSICompletionUPP';
1435 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1436 
1437 type
1438 	FilePlayCompletionProcPtr = procedure( chan: SndChannelPtr );
1439 	FilePlayCompletionUPP = FilePlayCompletionProcPtr;
1440 {
1441  *  NewFilePlayCompletionUPP()
1442  *
1443  *  Availability:
1444  *    Mac OS X:         not available
1445  *    CarbonLib:        not available
1446  *    Non-Carbon CFM:   available as macro/inline
1447  }
1448 
1449 {
1450  *  DisposeFilePlayCompletionUPP()
1451  *
1452  *  Availability:
1453  *    Mac OS X:         not available
1454  *    CarbonLib:        not available
1455  *    Non-Carbon CFM:   available as macro/inline
1456  }
1457 
1458 {
1459  *  InvokeFilePlayCompletionUPP()
1460  *
1461  *  Availability:
1462  *    Mac OS X:         not available
1463  *    CarbonLib:        not available
1464  *    Non-Carbon CFM:   available as macro/inline
1465  }
1466 
1467 {
1468   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1469    prototypes
1470   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1471 }
1472 
1473 
1474 { Sound Manager routines }
1475 {$ifc not TARGET_CPU_64}
1476 {
1477  *  SysBeep()   *** DEPRECATED ***
1478  *
1479  *  Deprecated:
1480  *    Use AudioServicesPlayAlertSound(). Found in
1481  *    AudioToolbox/AudioServices.h
1482  *
1483  *  Availability:
1484  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1485  *    CarbonLib:        in CarbonLib 1.0 and later
1486  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1487  }
1488 procedure SysBeep( duration: SInt16 ); external name '_SysBeep';
1489 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1490 
1491 
1492 {
1493  *  SndDoCommand()   *** DEPRECATED ***
1494  *
1495  *  Availability:
1496  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1497  *    CarbonLib:        in CarbonLib 1.0 and later
1498  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1499  }
SndDoCommandnull1500 function SndDoCommand( chan: SndChannelPtr; const (*var*) cmd: SndCommand; noWait: Boolean ): OSErr; external name '_SndDoCommand';
1501 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1502 
1503 
1504 {
1505  *  SndDoImmediate()   *** DEPRECATED ***
1506  *
1507  *  Availability:
1508  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1509  *    CarbonLib:        in CarbonLib 1.0 and later
1510  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1511  }
SndDoImmediatenull1512 function SndDoImmediate( chan: SndChannelPtr; const (*var*) cmd: SndCommand ): OSErr; external name '_SndDoImmediate';
1513 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1514 
1515 
1516 {
1517  *  SndNewChannel()   *** DEPRECATED ***
1518  *
1519  *  Availability:
1520  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1521  *    CarbonLib:        in CarbonLib 1.0 and later
1522  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1523  }
SndNewChannelnull1524 function SndNewChannel( var chan: SndChannelPtr; synth: SInt16; init: SIGNEDLONG; userRoutine: SndCallBackUPP ): OSErr; external name '_SndNewChannel';
1525 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1526 
1527 
1528 {
1529  *  SndDisposeChannel()   *** DEPRECATED ***
1530  *
1531  *  Availability:
1532  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1533  *    CarbonLib:        in CarbonLib 1.0 and later
1534  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1535  }
SndDisposeChannelnull1536 function SndDisposeChannel( chan: SndChannelPtr; quietNow: Boolean ): OSErr; external name '_SndDisposeChannel';
1537 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1538 
1539 
1540 {
1541  *  SndPlay()   *** DEPRECATED ***
1542  *
1543  *  Availability:
1544  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1545  *    CarbonLib:        in CarbonLib 1.0 and later
1546  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1547  }
SndPlaynull1548 function SndPlay( chan: SndChannelPtr; sndHandle: SndListHandle; async: Boolean ): OSErr; external name '_SndPlay';
1549 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1550 
1551 
1552 {$endc} {not TARGET_CPU_64}
1553 
1554 {$ifc OLDROUTINENAMES}
1555 {
1556  *  SndAddModifier()
1557  *
1558  *  Availability:
1559  *    Mac OS X:         not available
1560  *    CarbonLib:        not available
1561  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1562  }
1563 
1564 
1565 {$endc} {OLDROUTINENAMES}
1566 
1567 {
1568  *  SndControl()
1569  *
1570  *  Availability:
1571  *    Mac OS X:         not available
1572  *    CarbonLib:        not available
1573  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1574  }
1575 
1576 
1577 { Sound Manager 2.0 and later, uses _SoundDispatch }
1578 {$ifc not TARGET_CPU_64}
1579 {
1580  *  SndSoundManagerVersion()   *** DEPRECATED ***
1581  *
1582  *  Availability:
1583  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1584  *    CarbonLib:        in CarbonLib 1.0 and later
1585  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1586  }
SndSoundManagerVersionnull1587 function SndSoundManagerVersion: NumVersion; external name '_SndSoundManagerVersion';
1588 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1589 
1590 
1591 {$endc} {not TARGET_CPU_64}
1592 
1593 {
1594  *  SndStartFilePlay()
1595  *
1596  *  Availability:
1597  *    Mac OS X:         not available
1598  *    CarbonLib:        not available
1599  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1600  }
1601 
1602 
1603 {
1604  *  SndPauseFilePlay()
1605  *
1606  *  Availability:
1607  *    Mac OS X:         not available
1608  *    CarbonLib:        not available
1609  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1610  }
1611 
1612 
1613 {
1614  *  SndStopFilePlay()
1615  *
1616  *  Availability:
1617  *    Mac OS X:         not available
1618  *    CarbonLib:        not available
1619  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1620  }
1621 
1622 
1623 {$ifc not TARGET_CPU_64}
1624 {
1625  *  SndChannelStatus()   *** DEPRECATED ***
1626  *
1627  *  Availability:
1628  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1629  *    CarbonLib:        in CarbonLib 1.0 and later
1630  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1631  }
SndChannelStatusnull1632 function SndChannelStatus( chan: SndChannelPtr; theLength: SInt16; theStatus: SCStatusPtr ): OSErr; external name '_SndChannelStatus';
1633 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1634 
1635 
1636 {
1637  *  SndManagerStatus()   *** DEPRECATED ***
1638  *
1639  *  Availability:
1640  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1641  *    CarbonLib:        in CarbonLib 1.0 and later
1642  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1643  }
SndManagerStatusnull1644 function SndManagerStatus( theLength: SInt16; theStatus: SMStatusPtr ): OSErr; external name '_SndManagerStatus';
1645 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1646 
1647 
1648 {
1649  *  SndGetSysBeepState()   *** DEPRECATED ***
1650  *
1651  *  Deprecated:
1652  *    SysBeep related APIs have been replaced by AudioServices. Found
1653  *    in AudioToolbox/AudioServices.h
1654  *
1655  *  Availability:
1656  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1657  *    CarbonLib:        in CarbonLib 1.0 and later
1658  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1659  }
1660 procedure SndGetSysBeepState( var sysBeepState: SInt16 ); external name '_SndGetSysBeepState';
1661 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1662 
1663 
1664 {
1665  *  SndSetSysBeepState()   *** DEPRECATED ***
1666  *
1667  *  Deprecated:
1668  *    SysBeep related APIs have been replaced by AudioServices. Found
1669  *    in AudioToolbox/AudioServices.h
1670  *
1671  *  Availability:
1672  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1673  *    CarbonLib:        in CarbonLib 1.0 and later
1674  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1675  }
SndSetSysBeepStatenull1676 function SndSetSysBeepState( sysBeepState: SInt16 ): OSErr; external name '_SndSetSysBeepState';
1677 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1678 
1679 
1680 {$endc} {not TARGET_CPU_64}
1681 
1682 {
1683  *  SndPlayDoubleBuffer()
1684  *
1685  *  Availability:
1686  *    Mac OS X:         not available
1687  *    CarbonLib:        not available
1688  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1689  }
1690 
1691 
1692 { MACE compression routines, uses _SoundDispatch }
1693 {
1694  *  MACEVersion()
1695  *
1696  *  Availability:
1697  *    Mac OS X:         not available
1698  *    CarbonLib:        not available
1699  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1700  }
1701 
1702 
1703 {
1704  *  Comp3to1()
1705  *
1706  *  Availability:
1707  *    Mac OS X:         not available
1708  *    CarbonLib:        not available
1709  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1710  }
1711 
1712 
1713 {
1714  *  Exp1to3()
1715  *
1716  *  Availability:
1717  *    Mac OS X:         not available
1718  *    CarbonLib:        not available
1719  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1720  }
1721 
1722 
1723 {
1724  *  Comp6to1()
1725  *
1726  *  Availability:
1727  *    Mac OS X:         not available
1728  *    CarbonLib:        not available
1729  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1730  }
1731 
1732 
1733 {
1734  *  Exp1to6()
1735  *
1736  *  Availability:
1737  *    Mac OS X:         not available
1738  *    CarbonLib:        not available
1739  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1740  }
1741 
1742 
1743 { Sound Manager 3.0 and later calls, uses _SoundDispatch }
1744 {$ifc not TARGET_CPU_64}
1745 {
1746  *  GetSysBeepVolume()   *** DEPRECATED ***
1747  *
1748  *  Availability:
1749  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1750  *    CarbonLib:        in CarbonLib 1.0 and later
1751  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1752  }
GetSysBeepVolumenull1753 function GetSysBeepVolume( var level: SIGNEDLONG ): OSErr; external name '_GetSysBeepVolume';
1754 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1755 
1756 
1757 {
1758  *  SetSysBeepVolume()   *** DEPRECATED ***
1759  *
1760  *  Availability:
1761  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1762  *    CarbonLib:        in CarbonLib 1.0 and later
1763  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1764  }
SetSysBeepVolumenull1765 function SetSysBeepVolume( level: SIGNEDLONG ): OSErr; external name '_SetSysBeepVolume';
1766 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1767 
1768 
1769 {
1770  *  GetDefaultOutputVolume()   *** DEPRECATED ***
1771  *
1772  *  Availability:
1773  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1774  *    CarbonLib:        in CarbonLib 1.0 and later
1775  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1776  }
GetDefaultOutputVolumenull1777 function GetDefaultOutputVolume( var level: SIGNEDLONG ): OSErr; external name '_GetDefaultOutputVolume';
1778 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1779 
1780 
1781 {
1782  *  SetDefaultOutputVolume()   *** DEPRECATED ***
1783  *
1784  *  Availability:
1785  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1786  *    CarbonLib:        in CarbonLib 1.0 and later
1787  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1788  }
SetDefaultOutputVolumenull1789 function SetDefaultOutputVolume( level: SIGNEDLONG ): OSErr; external name '_SetDefaultOutputVolume';
1790 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1791 
1792 
1793 {
1794  *  GetSoundHeaderOffset()   *** DEPRECATED ***
1795  *
1796  *  Availability:
1797  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1798  *    CarbonLib:        in CarbonLib 1.0 and later
1799  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
1800  }
GetSoundHeaderOffsetnull1801 function GetSoundHeaderOffset( sndHandle: SndListHandle; var offset: SIGNEDLONG ): OSErr; external name '_GetSoundHeaderOffset';
1802 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1803 
1804 
1805 {$endc} {not TARGET_CPU_64}
1806 
1807 {
1808  *  UnsignedFixedMulDiv()
1809  *
1810  *  Availability:
1811  *    Mac OS X:         not available
1812  *    CarbonLib:        in CarbonLib 1.0 and later
1813  *    Non-Carbon CFM:   in SoundLib 3.0 and later
1814  }
1815 (*
1816 function UnsignedFixedMulDiv( value: UnsignedFixed; multiplier: UnsignedFixed; divisor: UnsignedFixed ): UnsignedFixed; external name '_UnsignedFixedMulDiv';
1817 
1818 Duplicated in FixMath.h, also strange that it's included here without availability info.
1819 *)
1820 
1821 {$ifc not TARGET_CPU_64}
1822 {
1823  *  GetCompressionInfo()   *** DEPRECATED ***
1824  *
1825  *  Availability:
1826  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1827  *    CarbonLib:        in CarbonLib 1.0 and later
1828  *    Non-Carbon CFM:   in SoundLib 3.0 and later
1829  }
GetCompressionInfonull1830 function GetCompressionInfo( compressionID: SInt16; format: OSType; numChannels: SInt16; sampleSize: SInt16; cp: CompressionInfoPtr ): OSErr; external name '_GetCompressionInfo';
1831 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1832 
1833 
1834 {
1835  *  SetSoundPreference()   *** DEPRECATED ***
1836  *
1837  *  Availability:
1838  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1839  *    CarbonLib:        in CarbonLib 1.0 and later
1840  *    Non-Carbon CFM:   in SoundLib 3.0 and later
1841  }
SetSoundPreferencenull1842 function SetSoundPreference( theType: OSType; var name: Str255; settings: Handle ): OSErr; external name '_SetSoundPreference';
1843 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1844 
1845 
1846 {
1847  *  GetSoundPreference()   *** DEPRECATED ***
1848  *
1849  *  Availability:
1850  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1851  *    CarbonLib:        in CarbonLib 1.0 and later
1852  *    Non-Carbon CFM:   in SoundLib 3.0 and later
1853  }
GetSoundPreferencenull1854 function GetSoundPreference( theType: OSType; var name: Str255; settings: Handle ): OSErr; external name '_GetSoundPreference';
1855 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1856 
1857 
1858 {
1859  *  OpenMixerSoundComponent()   *** DEPRECATED ***
1860  *
1861  *  Availability:
1862  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1863  *    CarbonLib:        in CarbonLib 1.0 and later
1864  *    Non-Carbon CFM:   in SoundLib 3.0 and later
1865  }
OpenMixerSoundComponentnull1866 function OpenMixerSoundComponent( outputDescription: SoundComponentDataPtr; outputFlags: SIGNEDLONG; var mixerComponent: ComponentInstance ): OSErr; external name '_OpenMixerSoundComponent';
1867 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1868 
1869 
1870 {
1871  *  CloseMixerSoundComponent()   *** DEPRECATED ***
1872  *
1873  *  Availability:
1874  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1875  *    CarbonLib:        in CarbonLib 1.0 and later
1876  *    Non-Carbon CFM:   in SoundLib 3.0 and later
1877  }
CloseMixerSoundComponentnull1878 function CloseMixerSoundComponent( ci: ComponentInstance ): OSErr; external name '_CloseMixerSoundComponent';
1879 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1880 
1881 
1882 { Sound Manager 3.1 and later calls, uses _SoundDispatch }
1883 {
1884  *  SndGetInfo()   *** DEPRECATED ***
1885  *
1886  *  Availability:
1887  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1888  *    CarbonLib:        in CarbonLib 1.0 and later
1889  *    Non-Carbon CFM:   in SoundLib 3.1 and later
1890  }
SndGetInfonull1891 function SndGetInfo( chan: SndChannelPtr; selector: OSType; infoPtr: UnivPtr ): OSErr; external name '_SndGetInfo';
1892 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1893 
1894 
1895 {
1896  *  SndSetInfo()   *** DEPRECATED ***
1897  *
1898  *  Availability:
1899  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1900  *    CarbonLib:        in CarbonLib 1.0 and later
1901  *    Non-Carbon CFM:   in SoundLib 3.1 and later
1902  }
SndSetInfonull1903 function SndSetInfo( chan: SndChannelPtr; selector: OSType; infoPtr: {const} UnivPtr ): OSErr; external name '_SndSetInfo';
1904 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1905 
1906 
1907 {
1908  *  GetSoundOutputInfo()   *** DEPRECATED ***
1909  *
1910  *  Availability:
1911  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1912  *    CarbonLib:        in CarbonLib 1.0 and later
1913  *    Non-Carbon CFM:   in SoundLib 3.1 and later
1914  }
GetSoundOutputInfonull1915 function GetSoundOutputInfo( outputDevice: Component; selector: OSType; infoPtr: UnivPtr ): OSErr; external name '_GetSoundOutputInfo';
1916 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1917 
1918 
1919 {
1920  *  SetSoundOutputInfo()   *** DEPRECATED ***
1921  *
1922  *  Availability:
1923  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1924  *    CarbonLib:        in CarbonLib 1.0 and later
1925  *    Non-Carbon CFM:   in SoundLib 3.1 and later
1926  }
SetSoundOutputInfonull1927 function SetSoundOutputInfo( outputDevice: Component; selector: OSType; infoPtr: {const} UnivPtr ): OSErr; external name '_SetSoundOutputInfo';
1928 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1929 
1930 
1931 { Sound Manager 3.2 and later calls, uses _SoundDispatch }
1932 {
1933  *  GetCompressionName()   *** DEPRECATED ***
1934  *
1935  *  Availability:
1936  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1937  *    CarbonLib:        in CarbonLib 1.0 and later
1938  *    Non-Carbon CFM:   in SoundLib 3.2 and later
1939  }
GetCompressionNamenull1940 function GetCompressionName( compressionType: OSType; var compressionName: Str255 ): OSErr; external name '_GetCompressionName';
1941 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1942 
1943 
1944 {
1945  *  SoundConverterOpen()   *** DEPRECATED ***
1946  *
1947  *  Availability:
1948  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1949  *    CarbonLib:        in CarbonLib 1.0 and later
1950  *    Non-Carbon CFM:   in SoundLib 3.2 and later
1951  }
SoundConverterOpennull1952 function SoundConverterOpen( const (*var*) inputFormat: SoundComponentData; const (*var*) outputFormat: SoundComponentData; var sc: SoundConverter ): OSErr; external name '_SoundConverterOpen';
1953 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1954 
1955 
1956 {
1957  *  SoundConverterClose()   *** DEPRECATED ***
1958  *
1959  *  Availability:
1960  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1961  *    CarbonLib:        in CarbonLib 1.0 and later
1962  *    Non-Carbon CFM:   in SoundLib 3.2 and later
1963  }
SoundConverterClosenull1964 function SoundConverterClose( sc: SoundConverter ): OSErr; external name '_SoundConverterClose';
1965 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1966 
1967 
1968 {
1969  *  SoundConverterGetBufferSizes()   *** DEPRECATED ***
1970  *
1971  *  Availability:
1972  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1973  *    CarbonLib:        in CarbonLib 1.0 and later
1974  *    Non-Carbon CFM:   in SoundLib 3.2 and later
1975  }
SoundConverterGetBufferSizesnull1976 function SoundConverterGetBufferSizes( sc: SoundConverter; inputBytesTarget: UNSIGNEDLONG; var inputFrames: UNSIGNEDLONG; var inputBytes: UNSIGNEDLONG; var outputBytes: UNSIGNEDLONG ): OSErr; external name '_SoundConverterGetBufferSizes';
1977 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1978 
1979 
1980 {
1981  *  SoundConverterBeginConversion()   *** DEPRECATED ***
1982  *
1983  *  Availability:
1984  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1985  *    CarbonLib:        in CarbonLib 1.0 and later
1986  *    Non-Carbon CFM:   in SoundLib 3.2 and later
1987  }
SoundConverterBeginConversionnull1988 function SoundConverterBeginConversion( sc: SoundConverter ): OSErr; external name '_SoundConverterBeginConversion';
1989 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
1990 
1991 
1992 {
1993  *  SoundConverterConvertBuffer()   *** DEPRECATED ***
1994  *
1995  *  Availability:
1996  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
1997  *    CarbonLib:        in CarbonLib 1.0 and later
1998  *    Non-Carbon CFM:   in SoundLib 3.2 and later
1999  }
SoundConverterConvertBuffernull2000 function SoundConverterConvertBuffer( sc: SoundConverter; inputPtr: {const} UnivPtr; inputFrames: UNSIGNEDLONG; outputPtr: UnivPtr; var outputFrames: UNSIGNEDLONG; var outputBytes: UNSIGNEDLONG ): OSErr; external name '_SoundConverterConvertBuffer';
2001 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2002 
2003 
2004 {
2005  *  SoundConverterEndConversion()   *** DEPRECATED ***
2006  *
2007  *  Availability:
2008  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2009  *    CarbonLib:        in CarbonLib 1.0 and later
2010  *    Non-Carbon CFM:   in SoundLib 3.2 and later
2011  }
SoundConverterEndConversionnull2012 function SoundConverterEndConversion( sc: SoundConverter; outputPtr: UnivPtr; var outputFrames: UNSIGNEDLONG; var outputBytes: UNSIGNEDLONG ): OSErr; external name '_SoundConverterEndConversion';
2013 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2014 
2015 
2016 { Sound Manager 3.3 and later calls, uses _SoundDispatch }
2017 {
2018  *  SoundConverterGetInfo()   *** DEPRECATED ***
2019  *
2020  *  Availability:
2021  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2022  *    CarbonLib:        in CarbonLib 1.0 and later
2023  *    Non-Carbon CFM:   in SoundLib 3.3 and later
2024  }
SoundConverterGetInfonull2025 function SoundConverterGetInfo( sc: SoundConverter; selector: OSType; infoPtr: UnivPtr ): OSErr; external name '_SoundConverterGetInfo';
2026 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2027 
2028 
2029 {
2030  *  SoundConverterSetInfo()   *** DEPRECATED ***
2031  *
2032  *  Availability:
2033  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2034  *    CarbonLib:        in CarbonLib 1.0 and later
2035  *    Non-Carbon CFM:   in SoundLib 3.3 and later
2036  }
SoundConverterSetInfonull2037 function SoundConverterSetInfo( sc: SoundConverter; selector: OSType; infoPtr: UnivPtr ): OSErr; external name '_SoundConverterSetInfo';
2038 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2039 
2040 
2041 { Sound Manager 3.6 and later calls, uses _SoundDispatch }
2042 {
2043  *  SoundConverterFillBuffer()   *** DEPRECATED ***
2044  *
2045  *  Availability:
2046  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2047  *    CarbonLib:        in CarbonLib 1.1 and later
2048  *    Non-Carbon CFM:   in SoundLib 3.6 and later
2049  }
SoundConverterFillBuffernull2050 function SoundConverterFillBuffer( sc: SoundConverter; fillBufferDataUPP: SoundConverterFillBufferDataUPP; fillBufferDataRefCon: UnivPtr; outputBuffer: UnivPtr; outputBufferByteSize: UNSIGNEDLONG; var bytesWritten: UNSIGNEDLONG; var framesWritten: UNSIGNEDLONG; var outputFlags: UNSIGNEDLONG ): OSErr; external name '_SoundConverterFillBuffer';
2051 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2052 
2053 
2054 {
2055  *  SoundManagerGetInfo()   *** DEPRECATED ***
2056  *
2057  *  Availability:
2058  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2059  *    CarbonLib:        in CarbonLib 1.1 and later
2060  *    Non-Carbon CFM:   in SoundLib 3.6 and later
2061  }
SoundManagerGetInfonull2062 function SoundManagerGetInfo( selector: OSType; infoPtr: UnivPtr ): OSErr; external name '_SoundManagerGetInfo';
2063 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2064 
2065 
2066 {
2067  *  SoundManagerSetInfo()   *** DEPRECATED ***
2068  *
2069  *  Availability:
2070  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2071  *    CarbonLib:        in CarbonLib 1.1 and later
2072  *    Non-Carbon CFM:   in SoundLib 3.6 and later
2073  }
SoundManagerSetInfonull2074 function SoundManagerSetInfo( selector: OSType; infoPtr: {const} UnivPtr ): OSErr; external name '_SoundManagerSetInfo';
2075 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2076 
2077 
2078 {
2079   Sound Component Functions
2080    basic sound component functions
2081 }
2082 
2083 {
2084  *  SoundComponentInitOutputDevice()   *** DEPRECATED ***
2085  *
2086  *  Availability:
2087  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2088  *    CarbonLib:        in CarbonLib 1.0 and later
2089  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2090  }
SoundComponentInitOutputDevicenull2091 function SoundComponentInitOutputDevice( ti: ComponentInstance; actions: SIGNEDLONG ): ComponentResult; external name '_SoundComponentInitOutputDevice';
2092 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2093 
2094 
2095 {
2096  *  SoundComponentSetSource()   *** DEPRECATED ***
2097  *
2098  *  Availability:
2099  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2100  *    CarbonLib:        in CarbonLib 1.0 and later
2101  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2102  }
SoundComponentSetSourcenull2103 function SoundComponentSetSource( ti: ComponentInstance; sourceID: SoundSource; source: ComponentInstance ): ComponentResult; external name '_SoundComponentSetSource';
2104 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2105 
2106 
2107 {
2108  *  SoundComponentGetSource()   *** DEPRECATED ***
2109  *
2110  *  Availability:
2111  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2112  *    CarbonLib:        in CarbonLib 1.0 and later
2113  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2114  }
SoundComponentGetSourcenull2115 function SoundComponentGetSource( ti: ComponentInstance; sourceID: SoundSource; var source: ComponentInstance ): ComponentResult; external name '_SoundComponentGetSource';
2116 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2117 
2118 
2119 {
2120  *  SoundComponentGetSourceData()   *** DEPRECATED ***
2121  *
2122  *  Availability:
2123  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2124  *    CarbonLib:        in CarbonLib 1.0 and later
2125  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2126  }
SoundComponentGetSourceDatanull2127 function SoundComponentGetSourceData( ti: ComponentInstance; var sourceData: SoundComponentDataPtr ): ComponentResult; external name '_SoundComponentGetSourceData';
2128 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2129 
2130 
2131 {
2132  *  SoundComponentSetOutput()   *** DEPRECATED ***
2133  *
2134  *  Availability:
2135  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2136  *    CarbonLib:        in CarbonLib 1.0 and later
2137  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2138  }
SoundComponentSetOutputnull2139 function SoundComponentSetOutput( ti: ComponentInstance; requested: SoundComponentDataPtr; var actual: SoundComponentDataPtr ): ComponentResult; external name '_SoundComponentSetOutput';
2140 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2141 
2142 
2143 { junction methods for the mixer, must be called at non-interrupt level}
2144 {
2145  *  SoundComponentAddSource()   *** DEPRECATED ***
2146  *
2147  *  Availability:
2148  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2149  *    CarbonLib:        in CarbonLib 1.0 and later
2150  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2151  }
SoundComponentAddSourcenull2152 function SoundComponentAddSource( ti: ComponentInstance; var sourceID: SoundSource ): ComponentResult; external name '_SoundComponentAddSource';
2153 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2154 
2155 
2156 {
2157  *  SoundComponentRemoveSource()   *** DEPRECATED ***
2158  *
2159  *  Availability:
2160  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2161  *    CarbonLib:        in CarbonLib 1.0 and later
2162  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2163  }
SoundComponentRemoveSourcenull2164 function SoundComponentRemoveSource( ti: ComponentInstance; sourceID: SoundSource ): ComponentResult; external name '_SoundComponentRemoveSource';
2165 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2166 
2167 
2168 { info methods}
2169 {
2170  *  SoundComponentGetInfo()   *** DEPRECATED ***
2171  *
2172  *  Availability:
2173  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2174  *    CarbonLib:        in CarbonLib 1.0 and later
2175  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2176  }
SoundComponentGetInfonull2177 function SoundComponentGetInfo( ti: ComponentInstance; sourceID: SoundSource; selector: OSType; infoPtr: UnivPtr ): ComponentResult; external name '_SoundComponentGetInfo';
2178 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2179 
2180 
2181 {
2182  *  SoundComponentSetInfo()   *** DEPRECATED ***
2183  *
2184  *  Availability:
2185  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2186  *    CarbonLib:        in CarbonLib 1.0 and later
2187  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2188  }
SoundComponentSetInfonull2189 function SoundComponentSetInfo( ti: ComponentInstance; sourceID: SoundSource; selector: OSType; infoPtr: UnivPtr ): ComponentResult; external name '_SoundComponentSetInfo';
2190 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2191 
2192 
2193 { control methods}
2194 {
2195  *  SoundComponentStartSource()   *** DEPRECATED ***
2196  *
2197  *  Availability:
2198  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2199  *    CarbonLib:        in CarbonLib 1.0 and later
2200  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2201  }
SoundComponentStartSourcenull2202 function SoundComponentStartSource( ti: ComponentInstance; count: SInt16; var sources: SoundSource ): ComponentResult; external name '_SoundComponentStartSource';
2203 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2204 
2205 
2206 {
2207  *  SoundComponentStopSource()   *** DEPRECATED ***
2208  *
2209  *  Availability:
2210  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2211  *    CarbonLib:        in CarbonLib 1.0 and later
2212  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2213  }
SoundComponentStopSourcenull2214 function SoundComponentStopSource( ti: ComponentInstance; count: SInt16; var sources: SoundSource ): ComponentResult; external name '_SoundComponentStopSource';
2215 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2216 
2217 
2218 {
2219  *  SoundComponentPauseSource()   *** DEPRECATED ***
2220  *
2221  *  Availability:
2222  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2223  *    CarbonLib:        in CarbonLib 1.0 and later
2224  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2225  }
SoundComponentPauseSourcenull2226 function SoundComponentPauseSource( ti: ComponentInstance; count: SInt16; var sources: SoundSource ): ComponentResult; external name '_SoundComponentPauseSource';
2227 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2228 
2229 
2230 {
2231  *  SoundComponentPlaySourceBuffer()   *** DEPRECATED ***
2232  *
2233  *  Availability:
2234  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2235  *    CarbonLib:        in CarbonLib 1.0 and later
2236  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2237  }
SoundComponentPlaySourceBuffernull2238 function SoundComponentPlaySourceBuffer( ti: ComponentInstance; sourceID: SoundSource; pb: SoundParamBlockPtr; actions: SIGNEDLONG ): ComponentResult; external name '_SoundComponentPlaySourceBuffer';
2239 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2240 
2241 
2242 {$endc} {not TARGET_CPU_64}
2243 
2244 
2245 { selectors for component calls }
2246 const
2247 	kSoundComponentInitOutputDeviceSelect = $0001;
2248 	kSoundComponentSetSourceSelect = $0002;
2249 	kSoundComponentGetSourceSelect = $0003;
2250 	kSoundComponentGetSourceDataSelect = $0004;
2251 	kSoundComponentSetOutputSelect = $0005;
2252 	kSoundComponentAddSourceSelect = $0101;
2253 	kSoundComponentRemoveSourceSelect = $0102;
2254 	kSoundComponentGetInfoSelect = $0103;
2255 	kSoundComponentSetInfoSelect = $0104;
2256 	kSoundComponentStartSourceSelect = $0105;
2257 	kSoundComponentStopSourceSelect = $0106;
2258 	kSoundComponentPauseSourceSelect = $0107;
2259 	kSoundComponentPlaySourceBufferSelect = $0108;
2260 {Audio Components}
2261 {Volume is described as a value between 0 and 1, with 0 indicating minimum
2262   volume and 1 indicating maximum volume; if the device doesn't support
2263   software control of volume, then a value of unimpErr is returned, indicating
2264   that these functions are not supported by the device
2265 }
2266 {
2267  *  AudioGetVolume()
2268  *
2269  *  Availability:
2270  *    Mac OS X:         not available
2271  *    CarbonLib:        not available
2272  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2273  }
2274 
2275 
2276 {
2277  *  AudioSetVolume()
2278  *
2279  *  Availability:
2280  *    Mac OS X:         not available
2281  *    CarbonLib:        not available
2282  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2283  }
2284 
2285 
2286 {If the device doesn't support software control of mute, then a value of unimpErr is
2287 returned, indicating that these functions are not supported by the device.}
2288 {
2289  *  AudioGetMute()
2290  *
2291  *  Availability:
2292  *    Mac OS X:         not available
2293  *    CarbonLib:        not available
2294  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2295  }
2296 
2297 
2298 {
2299  *  AudioSetMute()
2300  *
2301  *  Availability:
2302  *    Mac OS X:         not available
2303  *    CarbonLib:        not available
2304  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2305  }
2306 
2307 
2308 {AudioSetToDefaults causes the associated device to reset its volume and mute values
2309 (and perhaps other characteristics, e.g. attenuation) to "factory default" settings}
2310 {
2311  *  AudioSetToDefaults()
2312  *
2313  *  Availability:
2314  *    Mac OS X:         not available
2315  *    CarbonLib:        not available
2316  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2317  }
2318 
2319 
2320 {This routine is required; it must be implemented by all audio components}
2321 
2322 {
2323  *  AudioGetInfo()
2324  *
2325  *  Availability:
2326  *    Mac OS X:         not available
2327  *    CarbonLib:        not available
2328  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2329  }
2330 
2331 
2332 {
2333  *  AudioGetBass()
2334  *
2335  *  Availability:
2336  *    Mac OS X:         not available
2337  *    CarbonLib:        not available
2338  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2339  }
2340 
2341 
2342 {
2343  *  AudioSetBass()
2344  *
2345  *  Availability:
2346  *    Mac OS X:         not available
2347  *    CarbonLib:        not available
2348  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2349  }
2350 
2351 
2352 {
2353  *  AudioGetTreble()
2354  *
2355  *  Availability:
2356  *    Mac OS X:         not available
2357  *    CarbonLib:        not available
2358  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2359  }
2360 
2361 
2362 {
2363  *  AudioSetTreble()
2364  *
2365  *  Availability:
2366  *    Mac OS X:         not available
2367  *    CarbonLib:        not available
2368  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2369  }
2370 
2371 
2372 {
2373  *  AudioGetOutputDevice()
2374  *
2375  *  Availability:
2376  *    Mac OS X:         not available
2377  *    CarbonLib:        not available
2378  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2379  }
2380 
2381 
2382 {This is routine is private to the AudioVision component.  It enables the watching of the mute key.}
2383 {
2384  *  AudioMuteOnEvent()
2385  *
2386  *  Availability:
2387  *    Mac OS X:         not available
2388  *    CarbonLib:        not available
2389  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2390  }
2391 
2392 
2393 const
2394 	kDelegatedSoundComponentSelectors = $0100;
2395 
2396 
2397 { Sound Input Manager routines, uses _SoundDispatch }
2398 {$ifc not TARGET_CPU_64}
2399 {
2400  *  SPBVersion()   *** DEPRECATED ***
2401  *
2402  *  Availability:
2403  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2404  *    CarbonLib:        in CarbonLib 1.0 and later
2405  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2406  }
SPBVersionnull2407 function SPBVersion: NumVersion; external name '_SPBVersion';
2408 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2409 
2410 
2411 {
2412  *  SndRecord()   *** DEPRECATED ***
2413  *
2414  *  Availability:
2415  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2416  *    CarbonLib:        in CarbonLib 1.0 and later
2417  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2418  }
SndRecordnull2419 function SndRecord( filterProc: ModalFilterUPP; corner: Point; quality: OSType; var sndHandle: SndListHandle ): OSErr; external name '_SndRecord';
2420 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2421 
2422 
2423 {$endc} {not TARGET_CPU_64}
2424 
2425 {
2426  *  SndRecordToFile()
2427  *
2428  *  Availability:
2429  *    Mac OS X:         not available
2430  *    CarbonLib:        not available
2431  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2432  }
2433 
2434 
2435 {$ifc not TARGET_CPU_64}
2436 {
2437  *  SPBSignInDevice()   *** DEPRECATED ***
2438  *
2439  *  Availability:
2440  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2441  *    CarbonLib:        in CarbonLib 1.0 and later
2442  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2443  }
SPBSignInDevicenull2444 function SPBSignInDevice( deviceRefNum: SInt16; const (*var*) deviceName: Str255 ): OSErr; external name '_SPBSignInDevice';
2445 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2446 
2447 
2448 {
2449  *  SPBSignOutDevice()   *** DEPRECATED ***
2450  *
2451  *  Availability:
2452  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2453  *    CarbonLib:        in CarbonLib 1.0 and later
2454  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2455  }
SPBSignOutDevicenull2456 function SPBSignOutDevice( deviceRefNum: SInt16 ): OSErr; external name '_SPBSignOutDevice';
2457 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2458 
2459 
2460 {
2461  *  SPBGetIndexedDevice()   *** DEPRECATED ***
2462  *
2463  *  Availability:
2464  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2465  *    CarbonLib:        in CarbonLib 1.0 and later
2466  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2467  }
SPBGetIndexedDevicenull2468 function SPBGetIndexedDevice( count: SInt16; var deviceName: Str255; var deviceIconHandle: Handle ): OSErr; external name '_SPBGetIndexedDevice';
2469 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2470 
2471 
2472 {
2473  *  SPBOpenDevice()   *** DEPRECATED ***
2474  *
2475  *  Availability:
2476  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2477  *    CarbonLib:        in CarbonLib 1.0 and later
2478  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2479  }
SPBOpenDevicenull2480 function SPBOpenDevice( const (*var*) deviceName: Str255; permission: SInt16; var inRefNum: SIGNEDLONG ): OSErr; external name '_SPBOpenDevice';
2481 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2482 
2483 
2484 {
2485  *  SPBCloseDevice()   *** DEPRECATED ***
2486  *
2487  *  Availability:
2488  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2489  *    CarbonLib:        in CarbonLib 1.0 and later
2490  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2491  }
SPBCloseDevicenull2492 function SPBCloseDevice( inRefNum: SIGNEDLONG ): OSErr; external name '_SPBCloseDevice';
2493 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2494 
2495 
2496 {
2497  *  SPBRecord()   *** DEPRECATED ***
2498  *
2499  *  Availability:
2500  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2501  *    CarbonLib:        in CarbonLib 1.0 and later
2502  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2503  }
SPBRecordnull2504 function SPBRecord( inParamPtr: SPBPtr; asynchFlag: Boolean ): OSErr; external name '_SPBRecord';
2505 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2506 
2507 
2508 {$endc} {not TARGET_CPU_64}
2509 
2510 {
2511  *  SPBRecordToFile()
2512  *
2513  *  Availability:
2514  *    Mac OS X:         not available
2515  *    CarbonLib:        not available
2516  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2517  }
2518 
2519 
2520 {$ifc not TARGET_CPU_64}
2521 {
2522  *  SPBPauseRecording()   *** DEPRECATED ***
2523  *
2524  *  Availability:
2525  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2526  *    CarbonLib:        in CarbonLib 1.0 and later
2527  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2528  }
SPBPauseRecordingnull2529 function SPBPauseRecording( inRefNum: SIGNEDLONG ): OSErr; external name '_SPBPauseRecording';
2530 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2531 
2532 
2533 {
2534  *  SPBResumeRecording()   *** DEPRECATED ***
2535  *
2536  *  Availability:
2537  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2538  *    CarbonLib:        in CarbonLib 1.0 and later
2539  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2540  }
SPBResumeRecordingnull2541 function SPBResumeRecording( inRefNum: SIGNEDLONG ): OSErr; external name '_SPBResumeRecording';
2542 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2543 
2544 
2545 {
2546  *  SPBStopRecording()   *** DEPRECATED ***
2547  *
2548  *  Availability:
2549  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2550  *    CarbonLib:        in CarbonLib 1.0 and later
2551  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2552  }
SPBStopRecordingnull2553 function SPBStopRecording( inRefNum: SIGNEDLONG ): OSErr; external name '_SPBStopRecording';
2554 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2555 
2556 
2557 {
2558  *  SPBGetRecordingStatus()   *** DEPRECATED ***
2559  *
2560  *  Availability:
2561  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2562  *    CarbonLib:        in CarbonLib 1.0 and later
2563  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2564  }
SPBGetRecordingStatusnull2565 function SPBGetRecordingStatus( inRefNum: SIGNEDLONG; var recordingStatus: SInt16; var meterLevel: SInt16; var totalSamplesToRecord: UNSIGNEDLONG; var numberOfSamplesRecorded: UNSIGNEDLONG; var totalMsecsToRecord: UNSIGNEDLONG; var numberOfMsecsRecorded: UNSIGNEDLONG ): OSErr; external name '_SPBGetRecordingStatus';
2566 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2567 
2568 
2569 {
2570  *  SPBGetDeviceInfo()   *** DEPRECATED ***
2571  *
2572  *  Availability:
2573  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2574  *    CarbonLib:        in CarbonLib 1.0 and later
2575  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2576  }
SPBGetDeviceInfonull2577 function SPBGetDeviceInfo( inRefNum: SIGNEDLONG; infoType: OSType; infoData: UnivPtr ): OSErr; external name '_SPBGetDeviceInfo';
2578 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2579 
2580 
2581 {
2582  *  SPBSetDeviceInfo()   *** DEPRECATED ***
2583  *
2584  *  Availability:
2585  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2586  *    CarbonLib:        in CarbonLib 1.0 and later
2587  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2588  }
SPBSetDeviceInfonull2589 function SPBSetDeviceInfo( inRefNum: SIGNEDLONG; infoType: OSType; infoData: UnivPtr ): OSErr; external name '_SPBSetDeviceInfo';
2590 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2591 
2592 
2593 {
2594  *  SPBMillisecondsToBytes()   *** DEPRECATED ***
2595  *
2596  *  Availability:
2597  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2598  *    CarbonLib:        in CarbonLib 1.0 and later
2599  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2600  }
SPBMillisecondsToBytesnull2601 function SPBMillisecondsToBytes( inRefNum: SIGNEDLONG; var milliseconds: SIGNEDLONG ): OSErr; external name '_SPBMillisecondsToBytes';
2602 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2603 
2604 
2605 {
2606  *  SPBBytesToMilliseconds()   *** DEPRECATED ***
2607  *
2608  *  Availability:
2609  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2610  *    CarbonLib:        in CarbonLib 1.0 and later
2611  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2612  }
SPBBytesToMillisecondsnull2613 function SPBBytesToMilliseconds( inRefNum: SIGNEDLONG; var byteCount: SIGNEDLONG ): OSErr; external name '_SPBBytesToMilliseconds';
2614 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2615 
2616 
2617 {
2618  *  SetupSndHeader()   *** DEPRECATED ***
2619  *
2620  *  Availability:
2621  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2622  *    CarbonLib:        in CarbonLib 1.0 and later
2623  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2624  }
SetupSndHeadernull2625 function SetupSndHeader( sndHandle: SndListHandle; numChannels: SInt16; sampleRate: UnsignedFixed; sampleSize: SInt16; compressionType: OSType; baseNote: SInt16; numBytes: UNSIGNEDLONG; var headerLen: SInt16 ): OSErr; external name '_SetupSndHeader';
2626 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2627 
2628 
2629 {
2630  *  SetupAIFFHeader()   *** DEPRECATED ***
2631  *
2632  *  Availability:
2633  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2634  *    CarbonLib:        in CarbonLib 1.0 and later
2635  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
2636  }
SetupAIFFHeadernull2637 function SetupAIFFHeader( fRefNum: SInt16; numChannels: SInt16; sampleRate: UnsignedFixed; sampleSize: SInt16; compressionType: OSType; numBytes: UNSIGNEDLONG; numFrames: UNSIGNEDLONG ): OSErr; external name '_SetupAIFFHeader';
2638 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2639 
2640 
2641 { Sound Input Manager 1.1 and later calls, uses _SoundDispatch }
2642 {
2643  *  ParseAIFFHeader()   *** DEPRECATED ***
2644  *
2645  *  Availability:
2646  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2647  *    CarbonLib:        in CarbonLib 1.0 and later
2648  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2649  }
ParseAIFFHeadernull2650 function ParseAIFFHeader( fRefNum: SInt16; var sndInfo: SoundComponentData; var numFrames: UNSIGNEDLONG; var dataOffset: UNSIGNEDLONG ): OSErr; external name '_ParseAIFFHeader';
2651 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2652 
2653 
2654 {
2655  *  ParseSndHeader()   *** DEPRECATED ***
2656  *
2657  *  Availability:
2658  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2659  *    CarbonLib:        in CarbonLib 1.0 and later
2660  *    Non-Carbon CFM:   in SoundLib 3.0 and later
2661  }
ParseSndHeadernull2662 function ParseSndHeader( sndHandle: SndListHandle; var sndInfo: SoundComponentData; var numFrames: UNSIGNEDLONG; var dataOffset: UNSIGNEDLONG ): OSErr; external name '_ParseSndHeader';
2663 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2664 
2665 
2666 {$endc} {not TARGET_CPU_64}
2667 
2668 {$ifc TARGET_API_MAC_CARBON}
2669 {  Only to be used if you are writing a sound input component; this }
2670 {  is the param block for a read request from the SoundMgr to the   }
2671 {  sound input component.  Not to be confused with the SPB struct   }
2672 {  above, which is the param block for a read request from an app   }
2673 {  to the SoundMgr.                                                 }
2674 type
2675 	SndInputCmpParamPtr = ^SndInputCmpParam;
2676 	SICCompletionProcPtr = procedure( SICParmPtr: SndInputCmpParamPtr );
2677 	SndInputCmpParam = record
2678 		ioCompletion: SICCompletionProcPtr;         { completion routine [pointer]}
2679 		ioInterrupt: SIInterruptProcPtr;            { interrupt routine [pointer]}
2680 		ioResult: OSErr;               { I/O result code [word]}
2681 		pad: SInt16;
2682 		ioReqCount: UNSIGNEDLONG;
2683 		ioActCount: UNSIGNEDLONG;
2684 		ioBuffer: Ptr;
2685 		ioMisc: Ptr;
2686 	end;
2687 
2688 {$ifc not TARGET_CPU_64}
2689 {
2690  *  SndInputReadAsync()   *** DEPRECATED ***
2691  *
2692  *  Availability:
2693  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2694  *    CarbonLib:        not available
2695  *    Non-Carbon CFM:   not available
2696  }
SndInputReadAsyncnull2697 function SndInputReadAsync( self: ComponentInstance; SICParmPtr: SndInputCmpParamPtr ): ComponentResult; external name '_SndInputReadAsync';
2698 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2699 
2700 
2701 {
2702  *  SndInputReadSync()   *** DEPRECATED ***
2703  *
2704  *  Availability:
2705  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2706  *    CarbonLib:        not available
2707  *    Non-Carbon CFM:   not available
2708  }
SndInputReadSyncnull2709 function SndInputReadSync( self: ComponentInstance; SICParmPtr: SndInputCmpParamPtr ): ComponentResult; external name '_SndInputReadSync';
2710 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2711 
2712 
2713 {
2714  *  SndInputPauseRecording()   *** DEPRECATED ***
2715  *
2716  *  Availability:
2717  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2718  *    CarbonLib:        not available
2719  *    Non-Carbon CFM:   not available
2720  }
SndInputPauseRecordingnull2721 function SndInputPauseRecording( self: ComponentInstance ): ComponentResult; external name '_SndInputPauseRecording';
2722 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2723 
2724 
2725 {
2726  *  SndInputResumeRecording()   *** DEPRECATED ***
2727  *
2728  *  Availability:
2729  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2730  *    CarbonLib:        not available
2731  *    Non-Carbon CFM:   not available
2732  }
SndInputResumeRecordingnull2733 function SndInputResumeRecording( self: ComponentInstance ): ComponentResult; external name '_SndInputResumeRecording';
2734 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2735 
2736 
2737 {
2738  *  SndInputStopRecording()   *** DEPRECATED ***
2739  *
2740  *  Availability:
2741  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2742  *    CarbonLib:        not available
2743  *    Non-Carbon CFM:   not available
2744  }
SndInputStopRecordingnull2745 function SndInputStopRecording( self: ComponentInstance ): ComponentResult; external name '_SndInputStopRecording';
2746 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2747 
2748 
2749 {
2750  *  SndInputGetStatus()   *** DEPRECATED ***
2751  *
2752  *  Availability:
2753  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2754  *    CarbonLib:        not available
2755  *    Non-Carbon CFM:   not available
2756  }
SndInputGetStatusnull2757 function SndInputGetStatus( self: ComponentInstance; var recordingStatus: SInt16; var totalSamplesToRecord: UNSIGNEDLONG; var numberOfSamplesRecorded: UNSIGNEDLONG ): ComponentResult; external name '_SndInputGetStatus';
2758 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2759 
2760 
2761 {
2762  *  SndInputGetDeviceInfo()   *** DEPRECATED ***
2763  *
2764  *  Availability:
2765  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2766  *    CarbonLib:        not available
2767  *    Non-Carbon CFM:   not available
2768  }
SndInputGetDeviceInfonull2769 function SndInputGetDeviceInfo( self: ComponentInstance; infoType: OSType; infoData: UnivPtr ): ComponentResult; external name '_SndInputGetDeviceInfo';
2770 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2771 
2772 
2773 {
2774  *  SndInputSetDeviceInfo()   *** DEPRECATED ***
2775  *
2776  *  Availability:
2777  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2778  *    CarbonLib:        not available
2779  *    Non-Carbon CFM:   not available
2780  }
SndInputSetDeviceInfonull2781 function SndInputSetDeviceInfo( self: ComponentInstance; infoType: OSType; infoData: UnivPtr ): ComponentResult; external name '_SndInputSetDeviceInfo';
2782 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2783 
2784 
2785 {
2786  *  SndInputInitHardware()   *** DEPRECATED ***
2787  *
2788  *  Availability:
2789  *    Mac OS X:         in version 10.0 and later in Carbon.framework [32-bit only] but deprecated in 10.5
2790  *    CarbonLib:        not available
2791  *    Non-Carbon CFM:   not available
2792  }
SndInputInitHardwarenull2793 function SndInputInitHardware( self: ComponentInstance ): ComponentResult; external name '_SndInputInitHardware';
2794 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 *)
2795 
2796 
2797 {$endc} {not TARGET_CPU_64}
2798 
2799 
2800 { selectors for component calls }
2801 const
2802 	kSndInputReadAsyncSelect = $0001;
2803 	kSndInputReadSyncSelect = $0002;
2804 	kSndInputPauseRecordingSelect = $0003;
2805 	kSndInputResumeRecordingSelect = $0004;
2806 	kSndInputStopRecordingSelect = $0005;
2807 	kSndInputGetStatusSelect = $0006;
2808 	kSndInputGetDeviceInfoSelect = $0007;
2809 	kSndInputSetDeviceInfoSelect = $0008;
2810 	kSndInputInitHardwareSelect = $0009;
2811 {$endc} {TARGET_API_MAC_CARBON}
2812 
2813 {$endc} {not TARGET_CPU_64}
2814 
2815 {$endc} {TARGET_OS_MAC}
2816 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
2817 
2818 end.
2819 {$endc} {not MACOSALLINCLUDE}
2820