You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3240 lines
119 KiB
3240 lines
119 KiB
/* |
|
File: Sound.h |
|
|
|
Contains: Sound Manager Interfaces. |
|
|
|
Version: QuickTime 7.3 |
|
|
|
Copyright: (c) 2007 (c) 1986-2001 by Apple Computer, Inc., all rights reserved |
|
|
|
Bugs?: For bug reports, consult the following page on |
|
the World Wide Web: |
|
|
|
http://developer.apple.com/bugreporter/ |
|
|
|
*/ |
|
#ifndef __SOUND__ |
|
#define __SOUND__ |
|
|
|
#ifndef __MACTYPES__ |
|
#include <MacTypes.h> |
|
#endif |
|
|
|
#ifndef __COMPONENTS__ |
|
#include <Components.h> |
|
#endif |
|
|
|
#ifndef __MIXEDMODE__ |
|
#include <MixedMode.h> |
|
#endif |
|
|
|
#ifndef __DIALOGS__ |
|
#include <Dialogs.h> |
|
#endif |
|
|
|
|
|
|
|
|
|
#if PRAGMA_ONCE |
|
#pragma once |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#if PRAGMA_IMPORT |
|
#pragma import on |
|
#endif |
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=mac68k |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(push, 2) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack(2) |
|
#endif |
|
|
|
/* |
|
* * * N O T E * * * |
|
|
|
This file has been updated to include Sound Manager 3.3 interfaces. |
|
|
|
Some of the Sound Manager 3.0 interfaces were not put into the InterfaceLib |
|
that originally shipped with the PowerMacs. These missing functions and the |
|
new 3.3 interfaces have been released in the SoundLib library for PowerPC |
|
developers to link with. The runtime library for these functions are |
|
installed by the Sound Manager. The following functions are found in SoundLib. |
|
|
|
GetCompressionInfo(), GetSoundPreference(), SetSoundPreference(), |
|
UnsignedFixedMulDiv(), SndGetInfo(), SndSetInfo(), GetSoundOutputInfo(), |
|
SetSoundOutputInfo(), GetCompressionName(), SoundConverterOpen(), |
|
SoundConverterClose(), SoundConverterGetBufferSizes(), SoundConverterBeginConversion(), |
|
SoundConverterConvertBuffer(), SoundConverterEndConversion(), |
|
AudioGetBass(), AudioGetInfo(), AudioGetMute(), AudioGetOutputDevice(), |
|
AudioGetTreble(), AudioGetVolume(), AudioMuteOnEvent(), AudioSetBass(), |
|
AudioSetMute(), AudioSetToDefaults(), AudioSetTreble(), AudioSetVolume(), |
|
OpenMixerSoundComponent(), CloseMixerSoundComponent(), SoundComponentAddSource(), |
|
SoundComponentGetInfo(), SoundComponentGetSource(), SoundComponentGetSourceData(), |
|
SoundComponentInitOutputDevice(), SoundComponentPauseSource(), |
|
SoundComponentPlaySourceBuffer(), SoundComponentRemoveSource(), |
|
SoundComponentSetInfo(), SoundComponentSetOutput(), SoundComponentSetSource(), |
|
SoundComponentStartSource(), SoundComponentStopSource(), |
|
ParseAIFFHeader(), ParseSndHeader(), SoundConverterGetInfo(), SoundConverterSetInfo() |
|
*/ |
|
/* |
|
Interfaces for Sound Driver, !!! OBSOLETE and NOT SUPPORTED !!! |
|
|
|
These items are no longer defined, but appear here so that someone |
|
searching the interfaces might find them. If you are using one of these |
|
items, you must change your code to support the Sound Manager. |
|
|
|
swMode, ftMode, ffMode |
|
FreeWave, FFSynthRec, Tone, SWSynthRec, Wave, FTSoundRec |
|
SndCompletionProcPtr |
|
StartSound, StopSound, SoundDone |
|
SetSoundVol, GetSoundVol |
|
*/ |
|
/* |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
constants |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
*/ |
|
#define twelfthRootTwo 1.05946309435 |
|
|
|
enum { |
|
soundListRsrc = FOUR_CHAR_CODE('snd '), /*Resource type used by Sound Manager*/ |
|
kSoundCodecInfoResourceType = FOUR_CHAR_CODE('snfo') /*Resource type holding codec information (optional public component resource)*/ |
|
}; |
|
|
|
enum { |
|
kSimpleBeepID = 1 /*reserved resource ID for Simple Beep*/ |
|
}; |
|
|
|
enum { |
|
rate48khz = (long)0xBB800000, /*48000.00000 in fixed-point*/ |
|
rate44khz = (long)0xAC440000, /*44100.00000 in fixed-point*/ |
|
rate32khz = 0x7D000000, /*32000.00000 in fixed-point*/ |
|
rate22050hz = 0x56220000, /*22050.00000 in fixed-point*/ |
|
rate22khz = 0x56EE8BA3, /*22254.54545 in fixed-point*/ |
|
rate16khz = 0x3E800000, /*16000.00000 in fixed-point*/ |
|
rate11khz = 0x2B7745D1, /*11127.27273 in fixed-point*/ |
|
rate11025hz = 0x2B110000, /*11025.00000 in fixed-point*/ |
|
rate8khz = 0x1F400000 /* 8000.00000 in fixed-point*/ |
|
}; |
|
|
|
/*synthesizer numbers for SndNewChannel*/ |
|
enum { |
|
sampledSynth = 5 /*sampled sound synthesizer*/ |
|
}; |
|
|
|
#if CALL_NOT_IN_CARBON |
|
enum { |
|
squareWaveSynth = 1, /*square wave synthesizer*/ |
|
waveTableSynth = 3, /*wave table synthesizer*/ |
|
/*old Sound Manager MACE synthesizer numbers*/ |
|
MACE3snthID = 11, |
|
MACE6snthID = 13 |
|
}; |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
enum { |
|
kMiddleC = 60 /*MIDI note value for middle C*/ |
|
}; |
|
|
|
enum { |
|
kNoVolume = 0, /*setting for no sound volume*/ |
|
kFullVolume = 0x0100 /*1.0, setting for full hardware output volume*/ |
|
}; |
|
|
|
enum { |
|
stdQLength = 128 |
|
}; |
|
|
|
enum { |
|
dataOffsetFlag = 0x8000 |
|
}; |
|
|
|
enum { |
|
kUseOptionalOutputDevice = -1 /*only for Sound Manager 3.0 or later*/ |
|
}; |
|
|
|
enum { |
|
notCompressed = 0, /*compression ID's*/ |
|
fixedCompression = -1, /*compression ID for fixed-sized compression*/ |
|
variableCompression = -2 /*compression ID for variable-sized compression*/ |
|
}; |
|
|
|
enum { |
|
twoToOne = 1, |
|
eightToThree = 2, |
|
threeToOne = 3, |
|
sixToOne = 4, |
|
sixToOnePacketSize = 8, |
|
threeToOnePacketSize = 16 |
|
}; |
|
|
|
enum { |
|
stateBlockSize = 64, |
|
leftOverBlockSize = 32 |
|
}; |
|
|
|
enum { |
|
firstSoundFormat = 0x0001, /*general sound format*/ |
|
secondSoundFormat = 0x0002 /*special sampled sound format (HyperCard)*/ |
|
}; |
|
|
|
#if CALL_NOT_IN_CARBON |
|
enum { |
|
dbBufferReady = 0x00000001, /*double buffer is filled*/ |
|
dbLastBuffer = 0x00000004 /*last double buffer to play*/ |
|
}; |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
enum { |
|
sysBeepDisable = 0x0000, /*SysBeep() enable flags*/ |
|
sysBeepEnable = (1 << 0), |
|
sysBeepSynchronous = (1 << 1) /*if bit set, make alert sounds synchronous*/ |
|
}; |
|
|
|
enum { |
|
unitTypeNoSelection = 0xFFFF, /*unitTypes for AudioSelection.unitType*/ |
|
unitTypeSeconds = 0x0000 |
|
}; |
|
|
|
enum { |
|
stdSH = 0x00, /*Standard sound header encode value*/ |
|
extSH = 0xFF, /*Extended sound header encode value*/ |
|
cmpSH = 0xFE /*Compressed sound header encode value*/ |
|
}; |
|
|
|
/*command numbers for SndDoCommand and SndDoImmediate*/ |
|
enum { |
|
nullCmd = 0, |
|
quietCmd = 3, |
|
flushCmd = 4, |
|
reInitCmd = 5, |
|
waitCmd = 10, |
|
pauseCmd = 11, |
|
resumeCmd = 12, |
|
callBackCmd = 13, |
|
syncCmd = 14, |
|
availableCmd = 24, |
|
versionCmd = 25, |
|
volumeCmd = 46, /*sound manager 3.0 or later only*/ |
|
getVolumeCmd = 47, /*sound manager 3.0 or later only*/ |
|
clockComponentCmd = 50, /*sound manager 3.2.1 or later only*/ |
|
getClockComponentCmd = 51, /*sound manager 3.2.1 or later only*/ |
|
scheduledSoundCmd = 52, /*sound manager 3.3 or later only*/ |
|
linkSoundComponentsCmd = 53, /*sound manager 3.3 or later only*/ |
|
soundCmd = 80, |
|
bufferCmd = 81, |
|
rateMultiplierCmd = 86, |
|
getRateMultiplierCmd = 87 |
|
}; |
|
|
|
#if CALL_NOT_IN_CARBON |
|
/*command numbers for SndDoCommand and SndDoImmediate that are not available for use in Carbon */ |
|
enum { |
|
initCmd = 1, |
|
freeCmd = 2, |
|
totalLoadCmd = 26, |
|
loadCmd = 27, |
|
freqDurationCmd = 40, |
|
restCmd = 41, |
|
freqCmd = 42, |
|
ampCmd = 43, |
|
timbreCmd = 44, |
|
getAmpCmd = 45, |
|
waveTableCmd = 60, |
|
phaseCmd = 61, |
|
rateCmd = 82, |
|
continueCmd = 83, |
|
doubleBufferCmd = 84, |
|
getRateCmd = 85, |
|
sizeCmd = 90, /*obsolete command*/ |
|
convertCmd = 91 /*obsolete MACE command*/ |
|
}; |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
#if OLDROUTINENAMES |
|
/*channel initialization parameters*/ |
|
enum { |
|
waveInitChannelMask = 0x07, |
|
waveInitChannel0 = 0x04, /*wave table only, Sound Manager 2.0 and earlier*/ |
|
waveInitChannel1 = 0x05, /*wave table only, Sound Manager 2.0 and earlier*/ |
|
waveInitChannel2 = 0x06, /*wave table only, Sound Manager 2.0 and earlier*/ |
|
waveInitChannel3 = 0x07, /*wave table only, Sound Manager 2.0 and earlier*/ |
|
initChan0 = waveInitChannel0, /*obsolete spelling*/ |
|
initChan1 = waveInitChannel1, /*obsolete spelling*/ |
|
initChan2 = waveInitChannel2, /*obsolete spelling*/ |
|
initChan3 = waveInitChannel3 /*obsolete spelling*/ |
|
}; |
|
|
|
enum { |
|
outsideCmpSH = 0, /*obsolete MACE constant*/ |
|
insideCmpSH = 1, /*obsolete MACE constant*/ |
|
aceSuccess = 0, /*obsolete MACE constant*/ |
|
aceMemFull = 1, /*obsolete MACE constant*/ |
|
aceNilBlock = 2, /*obsolete MACE constant*/ |
|
aceBadComp = 3, /*obsolete MACE constant*/ |
|
aceBadEncode = 4, /*obsolete MACE constant*/ |
|
aceBadDest = 5, /*obsolete MACE constant*/ |
|
aceBadCmd = 6 /*obsolete MACE constant*/ |
|
}; |
|
|
|
#endif /* OLDROUTINENAMES */ |
|
|
|
enum { |
|
initChanLeft = 0x0002, /*left stereo channel*/ |
|
initChanRight = 0x0003, /*right stereo channel*/ |
|
initNoInterp = 0x0004, /*no linear interpolation*/ |
|
initNoDrop = 0x0008, /*no drop-sample conversion*/ |
|
initMono = 0x0080, /*monophonic channel*/ |
|
initStereo = 0x00C0, /*stereo channel*/ |
|
initMACE3 = 0x0300, /*MACE 3:1*/ |
|
initMACE6 = 0x0400, /*MACE 6:1*/ |
|
initPanMask = 0x0003, /*mask for right/left pan values*/ |
|
initSRateMask = 0x0030, /*mask for sample rate values*/ |
|
initStereoMask = 0x00C0, /*mask for mono/stereo values*/ |
|
initCompMask = 0xFF00 /*mask for compression IDs*/ |
|
}; |
|
|
|
/*Get&Set Sound Information Selectors*/ |
|
enum { |
|
siActiveChannels = FOUR_CHAR_CODE('chac'), /*active channels*/ |
|
siActiveLevels = FOUR_CHAR_CODE('lmac'), /*active meter levels*/ |
|
siAGCOnOff = FOUR_CHAR_CODE('agc '), /*automatic gain control state*/ |
|
siAsync = FOUR_CHAR_CODE('asyn'), /*asynchronous capability*/ |
|
siAVDisplayBehavior = FOUR_CHAR_CODE('avdb'), |
|
siChannelAvailable = FOUR_CHAR_CODE('chav'), /*number of channels available*/ |
|
siCompressionAvailable = FOUR_CHAR_CODE('cmav'), /*compression types available*/ |
|
siCompressionFactor = FOUR_CHAR_CODE('cmfa'), /*current compression factor*/ |
|
siCompressionHeader = FOUR_CHAR_CODE('cmhd'), /*return compression header*/ |
|
siCompressionNames = FOUR_CHAR_CODE('cnam'), /*compression type names available*/ |
|
siCompressionParams = FOUR_CHAR_CODE('evaw'), /*compression parameters*/ |
|
siCompressionSampleRate = FOUR_CHAR_CODE('cprt'), /* SetInfo only: compressor's sample rate*/ |
|
siCompressionChannels = FOUR_CHAR_CODE('cpct'), /* SetInfo only: compressor's number of channels*/ |
|
siCompressionOutputSampleRate = FOUR_CHAR_CODE('cort'), /* GetInfo only: only implemented by compressors that have differing in and out rates */ |
|
siCompressionInputRateList = FOUR_CHAR_CODE('crtl'), /* GetInfo only: only implemented by compressors that only take certain input rates */ |
|
siCompressionType = FOUR_CHAR_CODE('comp'), /*current compression type*/ |
|
siCompressionConfiguration = FOUR_CHAR_CODE('ccfg'), /*compression extensions*/ |
|
siContinuous = FOUR_CHAR_CODE('cont'), /*continous recording*/ |
|
siDecompressionParams = FOUR_CHAR_CODE('wave'), /*decompression parameters*/ |
|
siDecompressionConfiguration = FOUR_CHAR_CODE('dcfg'), /*decompression extensions*/ |
|
siDeviceBufferInfo = FOUR_CHAR_CODE('dbin'), /*size of interrupt buffer*/ |
|
siDeviceConnected = FOUR_CHAR_CODE('dcon'), /*input device connection status*/ |
|
siDeviceIcon = FOUR_CHAR_CODE('icon'), /*input device icon*/ |
|
siDeviceName = FOUR_CHAR_CODE('name'), /*input device name*/ |
|
siEQSpectrumBands = FOUR_CHAR_CODE('eqsb'), /* number of spectrum bands*/ |
|
siEQSpectrumLevels = FOUR_CHAR_CODE('eqlv'), /* gets spectum meter levels*/ |
|
siEQSpectrumOnOff = FOUR_CHAR_CODE('eqlo'), /* turn on/off spectum meter levels*/ |
|
siEQSpectrumResolution = FOUR_CHAR_CODE('eqrs'), /* set the resolution of the FFT, 0 = low res (<=16 bands), 1 = high res (16-64 bands)*/ |
|
siEQToneControlGain = FOUR_CHAR_CODE('eqtg'), /* set the bass and treble gain*/ |
|
siEQToneControlOnOff = FOUR_CHAR_CODE('eqtc'), /* turn on equalizer attenuation*/ |
|
siHardwareBalance = FOUR_CHAR_CODE('hbal'), |
|
siHardwareBalanceSteps = FOUR_CHAR_CODE('hbls'), |
|
siHardwareBass = FOUR_CHAR_CODE('hbas'), |
|
siHardwareBassSteps = FOUR_CHAR_CODE('hbst'), |
|
siHardwareBusy = FOUR_CHAR_CODE('hwbs'), /*sound hardware is in use*/ |
|
siHardwareFormat = FOUR_CHAR_CODE('hwfm'), /*get hardware format*/ |
|
siHardwareMute = FOUR_CHAR_CODE('hmut'), /*mute state of all hardware*/ |
|
siHardwareMuteNoPrefs = FOUR_CHAR_CODE('hmnp'), /*mute state of all hardware, but don't store in prefs */ |
|
siHardwareTreble = FOUR_CHAR_CODE('htrb'), |
|
siHardwareTrebleSteps = FOUR_CHAR_CODE('hwts'), |
|
siHardwareVolume = FOUR_CHAR_CODE('hvol'), /*volume level of all hardware*/ |
|
siHardwareVolumeSteps = FOUR_CHAR_CODE('hstp'), /*number of volume steps for hardware*/ |
|
siHeadphoneMute = FOUR_CHAR_CODE('pmut'), /*mute state of headphones*/ |
|
siHeadphoneVolume = FOUR_CHAR_CODE('pvol'), /*volume level of headphones*/ |
|
siHeadphoneVolumeSteps = FOUR_CHAR_CODE('hdst'), /*number of volume steps for headphones*/ |
|
siInputAvailable = FOUR_CHAR_CODE('inav'), /*input sources available*/ |
|
siInputGain = FOUR_CHAR_CODE('gain'), /*input gain*/ |
|
siInputSource = FOUR_CHAR_CODE('sour'), /*input source selector*/ |
|
siInputSourceNames = FOUR_CHAR_CODE('snam'), /*input source names*/ |
|
siLevelMeterOnOff = FOUR_CHAR_CODE('lmet'), /*level meter state*/ |
|
siModemGain = FOUR_CHAR_CODE('mgai'), /*modem input gain*/ |
|
siMonitorAvailable = FOUR_CHAR_CODE('mnav'), |
|
siMonitorSource = FOUR_CHAR_CODE('mons'), |
|
siNumberChannels = FOUR_CHAR_CODE('chan'), /*current number of channels*/ |
|
siOptionsDialog = FOUR_CHAR_CODE('optd'), /*display options dialog*/ |
|
siOSTypeInputSource = FOUR_CHAR_CODE('inpt'), /*input source by OSType*/ |
|
siOSTypeInputAvailable = FOUR_CHAR_CODE('inav'), /*list of available input source OSTypes*/ |
|
siOutputDeviceName = FOUR_CHAR_CODE('onam'), /*output device name*/ |
|
siPlayThruOnOff = FOUR_CHAR_CODE('plth'), /*playthrough state*/ |
|
siPostMixerSoundComponent = FOUR_CHAR_CODE('psmx'), /*install post-mixer effect*/ |
|
siPreMixerSoundComponent = FOUR_CHAR_CODE('prmx'), /*install pre-mixer effect*/ |
|
siQuality = FOUR_CHAR_CODE('qual'), /*quality setting*/ |
|
siRateMultiplier = FOUR_CHAR_CODE('rmul'), /*throttle rate setting*/ |
|
siRecordingQuality = FOUR_CHAR_CODE('qual'), /*recording quality*/ |
|
siSampleRate = FOUR_CHAR_CODE('srat'), /*current sample rate*/ |
|
siSampleRateAvailable = FOUR_CHAR_CODE('srav'), /*sample rates available*/ |
|
siSampleSize = FOUR_CHAR_CODE('ssiz'), /*current sample size*/ |
|
siSampleSizeAvailable = FOUR_CHAR_CODE('ssav'), /*sample sizes available*/ |
|
siSetupCDAudio = FOUR_CHAR_CODE('sucd'), /*setup sound hardware for CD audio*/ |
|
siSetupModemAudio = FOUR_CHAR_CODE('sumd'), /*setup sound hardware for modem audio*/ |
|
siSlopeAndIntercept = FOUR_CHAR_CODE('flap'), /*floating point variables for conversion*/ |
|
siSoundClock = FOUR_CHAR_CODE('sclk'), |
|
siUseThisSoundClock = FOUR_CHAR_CODE('sclc'), /*sdev uses this to tell the mixer to use his sound clock*/ |
|
siSpeakerMute = FOUR_CHAR_CODE('smut'), /*mute state of all built-in speaker*/ |
|
siSpeakerVolume = FOUR_CHAR_CODE('svol'), /*volume level of built-in speaker*/ |
|
siSSpCPULoadLimit = FOUR_CHAR_CODE('3dll'), |
|
siSSpLocalization = FOUR_CHAR_CODE('3dif'), |
|
siSSpSpeakerSetup = FOUR_CHAR_CODE('3dst'), |
|
siStereoInputGain = FOUR_CHAR_CODE('sgai'), /*stereo input gain*/ |
|
siSubwooferMute = FOUR_CHAR_CODE('bmut'), /*mute state of sub-woofer*/ |
|
siTerminalType = FOUR_CHAR_CODE('ttyp'), /* usb terminal type */ |
|
siTwosComplementOnOff = FOUR_CHAR_CODE('twos'), /*two's complement state*/ |
|
siVendorProduct = FOUR_CHAR_CODE('vpro'), /* vendor and product ID */ |
|
siVolume = FOUR_CHAR_CODE('volu'), /*volume level of source*/ |
|
siVoxRecordInfo = FOUR_CHAR_CODE('voxr'), /*VOX record parameters*/ |
|
siVoxStopInfo = FOUR_CHAR_CODE('voxs'), /*VOX stop parameters*/ |
|
siWideStereo = FOUR_CHAR_CODE('wide'), /*wide stereo setting*/ |
|
siSupportedExtendedFlags = FOUR_CHAR_CODE('exfl'), /*which flags are supported in Extended sound data structures*/ |
|
siRateConverterRollOffSlope = FOUR_CHAR_CODE('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)*/ |
|
siOutputLatency = FOUR_CHAR_CODE('olte'), /*latency of sound output component*/ |
|
siHALAudioDeviceID = FOUR_CHAR_CODE('hlid'), /*audio device id*/ |
|
siHALAudioDeviceUniqueID = FOUR_CHAR_CODE('huid'), /*audio device unique id*/ |
|
siClientAcceptsVBR = FOUR_CHAR_CODE('cvbr'), /*client handles VBR*/ |
|
siSourceIsExhausted = FOUR_CHAR_CODE('srcx'), /*the ultimate source of data has run out (keep asking, but when you get nothing, that's it)*/ |
|
siMediaContextID = FOUR_CHAR_CODE('uuid'), /*media context id -- UUID */ |
|
siCompressionMaxPacketSize = FOUR_CHAR_CODE('cmxp'), /*maximum compressed packet size for current configuration -- unsigned long */ |
|
siAudioCodecPropertyValue = FOUR_CHAR_CODE('spva'), /*audio codec property value -- SoundAudioCodecPropertyRequestParams* */ |
|
siAudioCodecPropertyInfo = FOUR_CHAR_CODE('spin') /*audio codec property info -- SoundAudioCodecPropertyRequestParams* */ |
|
}; |
|
|
|
enum { |
|
siCloseDriver = FOUR_CHAR_CODE('clos'), /*reserved for internal use only*/ |
|
siInitializeDriver = FOUR_CHAR_CODE('init'), /*reserved for internal use only*/ |
|
siPauseRecording = FOUR_CHAR_CODE('paus'), /*reserved for internal use only*/ |
|
siUserInterruptProc = FOUR_CHAR_CODE('user') /*reserved for internal use only*/ |
|
}; |
|
|
|
/* input source Types*/ |
|
enum { |
|
kInvalidSource = (long)0xFFFFFFFF, /*this source may be returned from GetInfo if no other source is the monitored source*/ |
|
kNoSource = FOUR_CHAR_CODE('none'), /*no source selection*/ |
|
kCDSource = FOUR_CHAR_CODE('cd '), /*internal CD player input*/ |
|
kExtMicSource = FOUR_CHAR_CODE('emic'), /*external mic input*/ |
|
kSoundInSource = FOUR_CHAR_CODE('sinj'), /*sound input jack*/ |
|
kRCAInSource = FOUR_CHAR_CODE('irca'), /*RCA jack input*/ |
|
kTVFMTunerSource = FOUR_CHAR_CODE('tvfm'), |
|
kDAVInSource = FOUR_CHAR_CODE('idav'), /*DAV analog input*/ |
|
kIntMicSource = FOUR_CHAR_CODE('imic'), /*internal mic input*/ |
|
kMediaBaySource = FOUR_CHAR_CODE('mbay'), /*media bay input*/ |
|
kModemSource = FOUR_CHAR_CODE('modm'), /*modem input (internal modem on desktops, PCI input on PowerBooks)*/ |
|
kPCCardSource = FOUR_CHAR_CODE('pcm '), /*PC Card pwm input*/ |
|
kZoomVideoSource = FOUR_CHAR_CODE('zvpc'), /*zoom video input*/ |
|
kDVDSource = FOUR_CHAR_CODE('dvda'), /* DVD audio input*/ |
|
kMicrophoneArray = FOUR_CHAR_CODE('mica') /* microphone array*/ |
|
}; |
|
|
|
/*Sound Component Types and Subtypes*/ |
|
enum { |
|
kNoSoundComponentType = FOUR_CHAR_CODE('****'), |
|
kSoundComponentType = FOUR_CHAR_CODE('sift'), /*component type*/ |
|
kSoundComponentPPCType = FOUR_CHAR_CODE('nift'), /*component type for PowerPC code*/ |
|
kRate8SubType = FOUR_CHAR_CODE('ratb'), /*8-bit rate converter*/ |
|
kRate16SubType = FOUR_CHAR_CODE('ratw'), /*16-bit rate converter*/ |
|
kConverterSubType = FOUR_CHAR_CODE('conv'), /*sample format converter*/ |
|
kSndSourceSubType = FOUR_CHAR_CODE('sour'), /*generic source component*/ |
|
kMixerType = FOUR_CHAR_CODE('mixr'), |
|
kMixer8SubType = FOUR_CHAR_CODE('mixb'), /*8-bit mixer*/ |
|
kMixer16SubType = FOUR_CHAR_CODE('mixw'), /*16-bit mixer*/ |
|
kSoundInputDeviceType = FOUR_CHAR_CODE('sinp'), /*sound input component*/ |
|
kWaveInSubType = FOUR_CHAR_CODE('wavi'), /*Windows waveIn*/ |
|
kWaveInSnifferSubType = FOUR_CHAR_CODE('wisn'), /*Windows waveIn sniffer*/ |
|
kSoundOutputDeviceType = FOUR_CHAR_CODE('sdev'), /*sound output component*/ |
|
kClassicSubType = FOUR_CHAR_CODE('clas'), /*classic hardware, i.e. Mac Plus*/ |
|
kASCSubType = FOUR_CHAR_CODE('asc '), /*Apple Sound Chip device*/ |
|
kDSPSubType = FOUR_CHAR_CODE('dsp '), /*DSP device*/ |
|
kAwacsSubType = FOUR_CHAR_CODE('awac'), /*Another of Will's Audio Chips device*/ |
|
kGCAwacsSubType = FOUR_CHAR_CODE('awgc'), /*Awacs audio with Grand Central DMA*/ |
|
kSingerSubType = FOUR_CHAR_CODE('sing'), /*Singer (via Whitney) based sound*/ |
|
kSinger2SubType = FOUR_CHAR_CODE('sng2'), /*Singer 2 (via Whitney) for Acme*/ |
|
kWhitSubType = FOUR_CHAR_CODE('whit'), /*Whit sound component for PrimeTime 3*/ |
|
kSoundBlasterSubType = FOUR_CHAR_CODE('sbls'), /*Sound Blaster for CHRP*/ |
|
kWaveOutSubType = FOUR_CHAR_CODE('wavo'), /*Windows waveOut*/ |
|
kWaveOutSnifferSubType = FOUR_CHAR_CODE('wosn'), /*Windows waveOut sniffer*/ |
|
kDirectSoundSubType = FOUR_CHAR_CODE('dsnd'), /*Windows DirectSound*/ |
|
kDirectSoundSnifferSubType = FOUR_CHAR_CODE('dssn'), /*Windows DirectSound sniffer*/ |
|
kUNIXsdevSubType = FOUR_CHAR_CODE('un1x'), /*UNIX base sdev*/ |
|
kUSBSubType = FOUR_CHAR_CODE('usb '), /*USB device*/ |
|
kBlueBoxSubType = FOUR_CHAR_CODE('bsnd'), /*Blue Box sound component*/ |
|
kHALCustomComponentSubType = FOUR_CHAR_CODE('halx'), /*Registered by the HAL output component ('hal!') for each HAL output device*/ |
|
kSoundCompressor = FOUR_CHAR_CODE('scom'), |
|
kSoundDecompressor = FOUR_CHAR_CODE('sdec'), |
|
kAudioComponentType = FOUR_CHAR_CODE('adio'), /*Audio components and sub-types*/ |
|
kAwacsPhoneSubType = FOUR_CHAR_CODE('hphn'), |
|
kAudioVisionSpeakerSubType = FOUR_CHAR_CODE('telc'), |
|
kAudioVisionHeadphoneSubType = FOUR_CHAR_CODE('telh'), |
|
kPhilipsFaderSubType = FOUR_CHAR_CODE('tvav'), |
|
kSGSToneSubType = FOUR_CHAR_CODE('sgs0'), |
|
kSoundEffectsType = FOUR_CHAR_CODE('snfx'), /*sound effects type*/ |
|
kEqualizerSubType = FOUR_CHAR_CODE('eqal'), /*frequency equalizer*/ |
|
kSSpLocalizationSubType = FOUR_CHAR_CODE('snd3') |
|
}; |
|
|
|
/*Format Types*/ |
|
enum { |
|
kSoundNotCompressed = FOUR_CHAR_CODE('NONE'), /*sound is not compressed*/ |
|
k8BitOffsetBinaryFormat = FOUR_CHAR_CODE('raw '), /*8-bit offset binary*/ |
|
k16BitBigEndianFormat = FOUR_CHAR_CODE('twos'), /*16-bit big endian*/ |
|
k16BitLittleEndianFormat = FOUR_CHAR_CODE('sowt'), /*16-bit little endian*/ |
|
kFloat32Format = FOUR_CHAR_CODE('fl32'), /*32-bit floating point*/ |
|
kFloat64Format = FOUR_CHAR_CODE('fl64'), /*64-bit floating point*/ |
|
k24BitFormat = FOUR_CHAR_CODE('in24'), /*24-bit integer*/ |
|
k32BitFormat = FOUR_CHAR_CODE('in32'), /*32-bit integer*/ |
|
k32BitLittleEndianFormat = FOUR_CHAR_CODE('23ni'), /*32-bit little endian integer */ |
|
kMACE3Compression = FOUR_CHAR_CODE('MAC3'), /*MACE 3:1*/ |
|
kMACE6Compression = FOUR_CHAR_CODE('MAC6'), /*MACE 6:1*/ |
|
kCDXA4Compression = FOUR_CHAR_CODE('cdx4'), /*CD/XA 4:1*/ |
|
kCDXA2Compression = FOUR_CHAR_CODE('cdx2'), /*CD/XA 2:1*/ |
|
kIMACompression = FOUR_CHAR_CODE('ima4'), /*IMA 4:1*/ |
|
kULawCompression = FOUR_CHAR_CODE('ulaw'), /*.Law 2:1*/ |
|
kALawCompression = FOUR_CHAR_CODE('alaw'), /*aLaw 2:1*/ |
|
kMicrosoftADPCMFormat = 0x6D730002, /*Microsoft ADPCM - ACM code 2*/ |
|
kDVIIntelIMAFormat = 0x6D730011, /*DVI/Intel IMA ADPCM - ACM code 17*/ |
|
kMicrosoftGSMCompression = 0x6D730031, /*Microsoft GSM 6.10 - ACM code 49*/ |
|
kDVAudioFormat = FOUR_CHAR_CODE('dvca'), /*DV Audio*/ |
|
kQDesignCompression = FOUR_CHAR_CODE('QDMC'), /*QDesign music*/ |
|
kQDesign2Compression = FOUR_CHAR_CODE('QDM2'), /*QDesign2 music*/ |
|
kQUALCOMMCompression = FOUR_CHAR_CODE('Qclp'), /*QUALCOMM PureVoice*/ |
|
kOffsetBinary = k8BitOffsetBinaryFormat, /*for compatibility*/ |
|
kTwosComplement = k16BitBigEndianFormat, /*for compatibility*/ |
|
kLittleEndianFormat = k16BitLittleEndianFormat, /*for compatibility*/ |
|
kMPEGLayer3Format = 0x6D730055, /*MPEG Layer 3, CBR only (pre QT4.1)*/ |
|
kFullMPEGLay3Format = FOUR_CHAR_CODE('.mp3'), /*MPEG Layer 3, CBR & VBR (QT4.1 and later)*/ |
|
kVariableDurationDVAudioFormat = FOUR_CHAR_CODE('vdva') /*Variable Duration DV Audio*/ |
|
}; |
|
|
|
#if TARGET_RT_LITTLE_ENDIAN |
|
enum { |
|
k16BitNativeEndianFormat = k16BitLittleEndianFormat, |
|
k16BitNonNativeEndianFormat = k16BitBigEndianFormat |
|
}; |
|
|
|
#else |
|
enum { |
|
k16BitNativeEndianFormat = k16BitBigEndianFormat, |
|
k16BitNonNativeEndianFormat = k16BitLittleEndianFormat |
|
}; |
|
|
|
#endif /* TARGET_RT_LITTLE_ENDIAN */ |
|
|
|
/*Features Flags*/ |
|
enum { |
|
k8BitRawIn = (1 << 0), /*data description*/ |
|
k8BitTwosIn = (1 << 1), |
|
k16BitIn = (1 << 2), |
|
kStereoIn = (1 << 3), |
|
k8BitRawOut = (1 << 8), |
|
k8BitTwosOut = (1 << 9), |
|
k16BitOut = (1 << 10), |
|
kStereoOut = (1 << 11), |
|
kReverse = (1L << 16), /* function description*/ |
|
kRateConvert = (1L << 17), |
|
kCreateSoundSource = (1L << 18), |
|
kVMAwareness = (1L << 21), /* component will hold its memory*/ |
|
kHighQuality = (1L << 22), /* performance description*/ |
|
kNonRealTime = (1L << 23) |
|
}; |
|
|
|
/*'snfo' Resource Feature Flags*/ |
|
enum { |
|
kSoundCodecInfoFixedCompression = (1L << 0), /* has fixed compression format*/ |
|
kSoundCodecInfoVariableCompression = (1L << 1), /* has variable compression format*/ |
|
kSoundCodecInfoHasRestrictedInputRates = (1L << 2), /* compressor has restricted set of input sample rates*/ |
|
kSoundCodecInfoCanChangeOutputRate = (1L << 3), /* compressor may output a different sample rate than it receives*/ |
|
kSoundCodecInfoRequiresExternalFraming = (1L << 4), /* format requires external framing information during decode/encode*/ |
|
kSoundCodecInfoVariableDuration = (1L << 5) /* audio packets can vary in duration*/ |
|
}; |
|
|
|
/*SoundComponentPlaySourceBuffer action flags*/ |
|
enum { |
|
kSourcePaused = (1 << 0), |
|
kPassThrough = (1L << 16), |
|
kNoSoundComponentChain = (1L << 17) |
|
}; |
|
|
|
/*SoundParamBlock flags, usefull for OpenMixerSoundComponent*/ |
|
enum { |
|
kNoMixing = (1 << 0), /*don't mix source*/ |
|
kNoSampleRateConversion = (1 << 1), /*don't convert sample rate (i.e. 11 kHz -> 22 kHz)*/ |
|
kNoSampleSizeConversion = (1 << 2), /*don't convert sample size (i.e. 16 -> 8)*/ |
|
kNoSampleFormatConversion = (1 << 3), /*don't convert sample format (i.e. 'twos' -> 'raw ')*/ |
|
kNoChannelConversion = (1 << 4), /*don't convert stereo/mono*/ |
|
kNoDecompression = (1 << 5), /*don't decompress (i.e. 'MAC3' -> 'raw ')*/ |
|
kNoVolumeConversion = (1 << 6), /*don't apply volume*/ |
|
kNoRealtimeProcessing = (1 << 7), /*won't run at interrupt time*/ |
|
kScheduledSource = (1 << 8), /*source is scheduled*/ |
|
kNonInterleavedBuffer = (1 << 9), /*buffer is not interleaved samples*/ |
|
kNonPagingMixer = (1 << 10), /*if VM is on, use the non-paging mixer*/ |
|
kSoundConverterMixer = (1 << 11), /*the mixer is to be used by the SoundConverter*/ |
|
kPagingMixer = (1 << 12), /*the mixer is to be used as a paging mixer when VM is on*/ |
|
kVMAwareMixer = (1 << 13), /*passed to the output device when the SM is going to deal with VM safety*/ |
|
kExtendedSoundData = (1 << 14) /*SoundComponentData record is actually an ExtendedSoundComponentData*/ |
|
}; |
|
|
|
/*SoundParamBlock quality settings*/ |
|
enum { |
|
kBestQuality = (1 << 0) /*use interpolation in rate conversion*/ |
|
}; |
|
|
|
/*useful bit masks*/ |
|
enum { |
|
kInputMask = 0x000000FF, /*masks off input bits*/ |
|
kOutputMask = 0x0000FF00, /*masks off output bits*/ |
|
kOutputShift = 8, /*amount output bits are shifted*/ |
|
kActionMask = 0x00FF0000, /*masks off action bits*/ |
|
kSoundComponentBits = 0x00FFFFFF |
|
}; |
|
|
|
/*audio atom types*/ |
|
enum { |
|
kAudioFormatAtomType = FOUR_CHAR_CODE('frma'), |
|
kAudioEndianAtomType = FOUR_CHAR_CODE('enda'), |
|
kAudioVBRAtomType = FOUR_CHAR_CODE('vbra'), |
|
kAudioTerminatorAtomType = 0 |
|
}; |
|
|
|
/*siAVDisplayBehavior types*/ |
|
enum { |
|
kAVDisplayHeadphoneRemove = 0, /* monitor does not have a headphone attached*/ |
|
kAVDisplayHeadphoneInsert = 1, /* monitor has a headphone attached*/ |
|
kAVDisplayPlainTalkRemove = 2, /* monitor either sending no input through CPU input port or unable to tell if input is coming in*/ |
|
kAVDisplayPlainTalkInsert = 3 /* monitor sending PlainTalk level microphone source input through sound input port*/ |
|
}; |
|
|
|
/*Audio Component constants*/ |
|
enum { |
|
/*Values for whichChannel parameter*/ |
|
audioAllChannels = 0, /*All channels (usually interpreted as both left and right)*/ |
|
audioLeftChannel = 1, /*Left channel*/ |
|
audioRightChannel = 2, /*Right channel*/ |
|
/*Values for mute parameter*/ |
|
audioUnmuted = 0, /*Device is unmuted*/ |
|
audioMuted = 1, /*Device is muted*/ |
|
/*Capabilities flags definitions*/ |
|
audioDoesMono = (1L << 0), /*Device supports mono output*/ |
|
audioDoesStereo = (1L << 1), /*Device supports stereo output*/ |
|
audioDoesIndependentChannels = (1L << 2) /*Device supports independent software control of each channel*/ |
|
}; |
|
|
|
/*Sound Input Qualities*/ |
|
enum { |
|
siCDQuality = FOUR_CHAR_CODE('cd '), /*44.1kHz, stereo, 16 bit*/ |
|
siBestQuality = FOUR_CHAR_CODE('best'), /*22kHz, mono, 8 bit*/ |
|
siBetterQuality = FOUR_CHAR_CODE('betr'), /*22kHz, mono, MACE 3:1*/ |
|
siGoodQuality = FOUR_CHAR_CODE('good'), /*22kHz, mono, MACE 6:1*/ |
|
siNoneQuality = FOUR_CHAR_CODE('none') /*settings don't match any quality for a get call*/ |
|
}; |
|
|
|
enum { |
|
siDeviceIsConnected = 1, /*input device is connected and ready for input*/ |
|
siDeviceNotConnected = 0, /*input device is not connected*/ |
|
siDontKnowIfConnected = -1, /*can't tell if input device is connected*/ |
|
siReadPermission = 0, /*permission passed to SPBOpenDevice*/ |
|
siWritePermission = 1 /*permission passed to SPBOpenDevice*/ |
|
}; |
|
|
|
/*flags that SoundConverterFillBuffer will return*/ |
|
enum { |
|
kSoundConverterDidntFillBuffer = (1 << 0), /*set if the converter couldn't completely satisfy a SoundConverterFillBuffer request*/ |
|
kSoundConverterHasLeftOverData = (1 << 1) /*set if the converter had left over data after completely satisfying a SoundConverterFillBuffer call*/ |
|
}; |
|
|
|
/* flags for extendedFlags fields of ExtendedSoundComponentData, ExtendedSoundParamBlock, and ExtendedScheduledSoundHeader*/ |
|
enum { |
|
kExtendedSoundSampleCountNotValid = 1L << 0, /* set if sampleCount of SoundComponentData isn't meaningful; use buffer size instead*/ |
|
kExtendedSoundBufferSizeValid = 1L << 1, /* set if bufferSize field is valid*/ |
|
kExtendedSoundFrameSizesValid = 1L << 2, /* set if frameSizesArray is valid (will be nil if all sizes are common and kExtendedSoundCommonFrameSizeValid is set*/ |
|
kExtendedSoundCommonFrameSizeValid = 1L << 3, /* set if all audio frames have the same size and the commonFrameSize field is valid*/ |
|
kExtendedSoundExtensionsValid = 1L << 4, /* set if pointer to extensions array is valid*/ |
|
kExtendedSoundBufferFlagsValid = 1L << 5 /* set if buffer flags field is valid*/ |
|
}; |
|
|
|
/* flags passed in bufferFlags/bufferFlagsMask extended fields if kExtendedSoundBufferFlagsValid extended flag is set*/ |
|
enum { |
|
kExtendedSoundBufferIsDiscontinuous = 1L << 0, /* buffer is discontinuous with previous buffer*/ |
|
kExtendedSoundBufferIsFirstBuffer = 1L << 1 /* buffer is first buffer*/ |
|
}; |
|
|
|
/* |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
typedefs |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
*/ |
|
|
|
struct SndCommand { |
|
unsigned short cmd; |
|
short param1; |
|
long param2; |
|
}; |
|
typedef struct SndCommand SndCommand; |
|
typedef struct SndChannel SndChannel; |
|
|
|
typedef SndChannel * SndChannelPtr; |
|
typedef CALLBACK_API( void , SndCallBackProcPtr )(SndChannelPtr chan, SndCommand *cmd); |
|
typedef STACK_UPP_TYPE(SndCallBackProcPtr) SndCallBackUPP; |
|
struct SndChannel { |
|
SndChannelPtr nextChan; |
|
Ptr firstMod; /* reserved for the Sound Manager */ |
|
SndCallBackUPP callBack; |
|
long userInfo; |
|
long wait; /* The following is for internal Sound Manager use only.*/ |
|
SndCommand cmdInProgress; |
|
short flags; |
|
short qLength; |
|
short qHead; |
|
short qTail; |
|
SndCommand queue[128]; |
|
}; |
|
|
|
/* |
|
* NewSndCallBackUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( SndCallBackUPP ) |
|
NewSndCallBackUPP(SndCallBackProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppSndCallBackProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(SndCallBackUPP) NewSndCallBackUPP(SndCallBackProcPtr userRoutine) { return (SndCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSndCallBackProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewSndCallBackUPP(userRoutine) (SndCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSndCallBackProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeSndCallBackUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeSndCallBackUPP(SndCallBackUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeSndCallBackUPP(SndCallBackUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeSndCallBackUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeSndCallBackUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
InvokeSndCallBackUPP( |
|
SndChannelPtr chan, |
|
SndCommand * cmd, |
|
SndCallBackUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeSndCallBackUPP(SndChannelPtr chan, SndCommand * cmd, SndCallBackUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppSndCallBackProcInfo, chan, cmd); } |
|
#else |
|
#define InvokeSndCallBackUPP(chan, cmd, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppSndCallBackProcInfo, (chan), (cmd)) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES |
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ |
|
#define NewSndCallBackProc(userRoutine) NewSndCallBackUPP(userRoutine) |
|
#define CallSndCallBackProc(userRoutine, chan, cmd) InvokeSndCallBackUPP(chan, cmd, userRoutine) |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/*MACE structures*/ |
|
struct StateBlock { |
|
short stateVar[64]; |
|
}; |
|
typedef struct StateBlock StateBlock; |
|
typedef StateBlock * StateBlockPtr; |
|
struct LeftOverBlock { |
|
unsigned long count; |
|
SInt8 sampleArea[32]; |
|
}; |
|
typedef struct LeftOverBlock LeftOverBlock; |
|
typedef LeftOverBlock * LeftOverBlockPtr; |
|
struct ModRef { |
|
unsigned short modNumber; |
|
long modInit; |
|
}; |
|
typedef struct ModRef ModRef; |
|
struct SndListResource { |
|
short format; |
|
short numModifiers; |
|
ModRef modifierPart[1]; |
|
short numCommands; |
|
SndCommand commandPart[1]; |
|
UInt8 dataPart[1]; |
|
}; |
|
typedef struct SndListResource SndListResource; |
|
typedef SndListResource * SndListPtr; |
|
typedef SndListPtr * SndListHandle; |
|
typedef SndListHandle SndListHndl; |
|
/*HyperCard sound resource format*/ |
|
struct Snd2ListResource { |
|
short format; |
|
short refCount; |
|
short numCommands; |
|
SndCommand commandPart[1]; |
|
UInt8 dataPart[1]; |
|
}; |
|
typedef struct Snd2ListResource Snd2ListResource; |
|
typedef Snd2ListResource * Snd2ListPtr; |
|
typedef Snd2ListPtr * Snd2ListHandle; |
|
typedef Snd2ListHandle Snd2ListHndl; |
|
struct SoundHeader { |
|
Ptr samplePtr; /*if NIL then samples are in sampleArea*/ |
|
unsigned long length; /*length of sound in bytes*/ |
|
UnsignedFixed sampleRate; /*sample rate for this sound*/ |
|
unsigned long loopStart; /*start of looping portion*/ |
|
unsigned long loopEnd; /*end of looping portion*/ |
|
UInt8 encode; /*header encoding*/ |
|
UInt8 baseFrequency; /*baseFrequency value*/ |
|
UInt8 sampleArea[1]; /*space for when samples follow directly*/ |
|
}; |
|
typedef struct SoundHeader SoundHeader; |
|
typedef SoundHeader * SoundHeaderPtr; |
|
struct CmpSoundHeader { |
|
Ptr samplePtr; /*if nil then samples are in sample area*/ |
|
unsigned long numChannels; /*number of channels i.e. mono = 1*/ |
|
UnsignedFixed sampleRate; /*sample rate in Apples Fixed point representation*/ |
|
unsigned long loopStart; /*loopStart of sound before compression*/ |
|
unsigned long loopEnd; /*loopEnd of sound before compression*/ |
|
UInt8 encode; /*data structure used , stdSH, extSH, or cmpSH*/ |
|
UInt8 baseFrequency; /*same meaning as regular SoundHeader*/ |
|
unsigned long numFrames; /*length in frames ( packetFrames or sampleFrames )*/ |
|
extended80 AIFFSampleRate; /*IEEE sample rate*/ |
|
Ptr markerChunk; /*sync track*/ |
|
OSType format; /*data format type, was futureUse1*/ |
|
unsigned long futureUse2; /*reserved by Apple*/ |
|
StateBlockPtr stateVars; /*pointer to State Block*/ |
|
LeftOverBlockPtr leftOverSamples; /*used to save truncated samples between compression calls*/ |
|
short compressionID; /*0 means no compression, non zero means compressionID*/ |
|
unsigned short packetSize; /*number of bits in compressed sample packet*/ |
|
unsigned short snthID; /*resource ID of Sound Manager snth that contains NRT C/E*/ |
|
unsigned short sampleSize; /*number of bits in non-compressed sample*/ |
|
UInt8 sampleArea[1]; /*space for when samples follow directly*/ |
|
}; |
|
typedef struct CmpSoundHeader CmpSoundHeader; |
|
typedef CmpSoundHeader * CmpSoundHeaderPtr; |
|
struct ExtSoundHeader { |
|
Ptr samplePtr; /*if nil then samples are in sample area*/ |
|
unsigned long numChannels; /*number of channels, ie mono = 1*/ |
|
UnsignedFixed sampleRate; /*sample rate in Apples Fixed point representation*/ |
|
unsigned long loopStart; /*same meaning as regular SoundHeader*/ |
|
unsigned long loopEnd; /*same meaning as regular SoundHeader*/ |
|
UInt8 encode; /*data structure used , stdSH, extSH, or cmpSH*/ |
|
UInt8 baseFrequency; /*same meaning as regular SoundHeader*/ |
|
unsigned long numFrames; /*length in total number of frames*/ |
|
extended80 AIFFSampleRate; /*IEEE sample rate*/ |
|
Ptr markerChunk; /*sync track*/ |
|
Ptr instrumentChunks; /*AIFF instrument chunks*/ |
|
Ptr AESRecording; |
|
unsigned short sampleSize; /*number of bits in sample*/ |
|
unsigned short futureUse1; /*reserved by Apple*/ |
|
unsigned long futureUse2; /*reserved by Apple*/ |
|
unsigned long futureUse3; /*reserved by Apple*/ |
|
unsigned long futureUse4; /*reserved by Apple*/ |
|
UInt8 sampleArea[1]; /*space for when samples follow directly*/ |
|
}; |
|
typedef struct ExtSoundHeader ExtSoundHeader; |
|
typedef ExtSoundHeader * ExtSoundHeaderPtr; |
|
union SoundHeaderUnion { |
|
SoundHeader stdHeader; |
|
CmpSoundHeader cmpHeader; |
|
ExtSoundHeader extHeader; |
|
}; |
|
typedef union SoundHeaderUnion SoundHeaderUnion; |
|
struct ConversionBlock { |
|
short destination; |
|
short unused; |
|
CmpSoundHeaderPtr inputPtr; |
|
CmpSoundHeaderPtr outputPtr; |
|
}; |
|
typedef struct ConversionBlock ConversionBlock; |
|
typedef ConversionBlock * ConversionBlockPtr; |
|
/* ScheduledSoundHeader flags*/ |
|
enum { |
|
kScheduledSoundDoScheduled = 1 << 0, |
|
kScheduledSoundDoCallBack = 1 << 1, |
|
kScheduledSoundExtendedHdr = 1 << 2 |
|
}; |
|
|
|
struct ScheduledSoundHeader { |
|
SoundHeaderUnion u; |
|
long flags; |
|
short reserved; |
|
short callBackParam1; |
|
long callBackParam2; |
|
TimeRecord startTime; |
|
}; |
|
typedef struct ScheduledSoundHeader ScheduledSoundHeader; |
|
typedef ScheduledSoundHeader * ScheduledSoundHeaderPtr; |
|
struct ExtendedScheduledSoundHeader { |
|
SoundHeaderUnion u; |
|
long flags; |
|
short reserved; |
|
short callBackParam1; |
|
long callBackParam2; |
|
TimeRecord startTime; |
|
long recordSize; |
|
long extendedFlags; |
|
long bufferSize; |
|
long frameCount; /* number of audio frames*/ |
|
long * frameSizesArray; /* pointer to array of longs with frame sizes in bytes*/ |
|
long commonFrameSize; /* size of each frame if common*/ |
|
void * extensionsPtr; /*pointer to set of classic atoms (size,type,data,...)*/ |
|
long extensionsSize; /*size of extensions data (extensionsPtr)*/ |
|
unsigned long bufferFlags; /*set or cleared flags*/ |
|
unsigned long bufferFlagsMask; /*which flags are valid*/ |
|
}; |
|
typedef struct ExtendedScheduledSoundHeader ExtendedScheduledSoundHeader; |
|
typedef ExtendedScheduledSoundHeader * ExtendedScheduledSoundHeaderPtr; |
|
struct SMStatus { |
|
short smMaxCPULoad; |
|
short smNumChannels; |
|
short smCurCPULoad; |
|
}; |
|
typedef struct SMStatus SMStatus; |
|
typedef SMStatus * SMStatusPtr; |
|
struct SCStatus { |
|
UnsignedFixed scStartTime; |
|
UnsignedFixed scEndTime; |
|
UnsignedFixed scCurrentTime; |
|
Boolean scChannelBusy; |
|
Boolean scChannelDisposed; |
|
Boolean scChannelPaused; |
|
Boolean scUnused; |
|
unsigned long scChannelAttributes; |
|
long scCPULoad; |
|
}; |
|
typedef struct SCStatus SCStatus; |
|
typedef SCStatus * SCStatusPtr; |
|
struct AudioSelection { |
|
long unitType; |
|
UnsignedFixed selStart; |
|
UnsignedFixed selEnd; |
|
}; |
|
typedef struct AudioSelection AudioSelection; |
|
typedef AudioSelection * AudioSelectionPtr; |
|
#if CALL_NOT_IN_CARBON |
|
struct SndDoubleBuffer { |
|
long dbNumFrames; |
|
long dbFlags; |
|
long dbUserInfo[2]; |
|
SInt8 dbSoundData[1]; |
|
}; |
|
typedef struct SndDoubleBuffer SndDoubleBuffer; |
|
typedef SndDoubleBuffer * SndDoubleBufferPtr; |
|
|
|
|
|
typedef CALLBACK_API( void , SndDoubleBackProcPtr )(SndChannelPtr channel, SndDoubleBufferPtr doubleBufferPtr); |
|
typedef STACK_UPP_TYPE(SndDoubleBackProcPtr) SndDoubleBackUPP; |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* NewSndDoubleBackUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( SndDoubleBackUPP ) |
|
NewSndDoubleBackUPP(SndDoubleBackProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppSndDoubleBackProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(SndDoubleBackUPP) NewSndDoubleBackUPP(SndDoubleBackProcPtr userRoutine) { return (SndDoubleBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSndDoubleBackProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewSndDoubleBackUPP(userRoutine) (SndDoubleBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSndDoubleBackProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeSndDoubleBackUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeSndDoubleBackUPP(SndDoubleBackUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeSndDoubleBackUPP(SndDoubleBackUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeSndDoubleBackUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeSndDoubleBackUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
InvokeSndDoubleBackUPP( |
|
SndChannelPtr channel, |
|
SndDoubleBufferPtr doubleBufferPtr, |
|
SndDoubleBackUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeSndDoubleBackUPP(SndChannelPtr channel, SndDoubleBufferPtr doubleBufferPtr, SndDoubleBackUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppSndDoubleBackProcInfo, channel, doubleBufferPtr); } |
|
#else |
|
#define InvokeSndDoubleBackUPP(channel, doubleBufferPtr, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppSndDoubleBackProcInfo, (channel), (doubleBufferPtr)) |
|
#endif |
|
#endif |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES |
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ |
|
#define NewSndDoubleBackProc(userRoutine) NewSndDoubleBackUPP(userRoutine) |
|
#define CallSndDoubleBackProc(userRoutine, channel, doubleBufferPtr) InvokeSndDoubleBackUPP(channel, doubleBufferPtr, userRoutine) |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
struct SndDoubleBufferHeader { |
|
short dbhNumChannels; |
|
short dbhSampleSize; |
|
short dbhCompressionID; |
|
short dbhPacketSize; |
|
UnsignedFixed dbhSampleRate; |
|
SndDoubleBufferPtr dbhBufferPtr[2]; |
|
SndDoubleBackUPP dbhDoubleBack; |
|
}; |
|
typedef struct SndDoubleBufferHeader SndDoubleBufferHeader; |
|
typedef SndDoubleBufferHeader * SndDoubleBufferHeaderPtr; |
|
struct SndDoubleBufferHeader2 { |
|
short dbhNumChannels; |
|
short dbhSampleSize; |
|
short dbhCompressionID; |
|
short dbhPacketSize; |
|
UnsignedFixed dbhSampleRate; |
|
SndDoubleBufferPtr dbhBufferPtr[2]; |
|
SndDoubleBackUPP dbhDoubleBack; |
|
OSType dbhFormat; |
|
}; |
|
typedef struct SndDoubleBufferHeader2 SndDoubleBufferHeader2; |
|
typedef SndDoubleBufferHeader2 * SndDoubleBufferHeader2Ptr; |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
struct SoundInfoList { |
|
short count; |
|
Handle infoHandle; |
|
}; |
|
typedef struct SoundInfoList SoundInfoList; |
|
typedef SoundInfoList * SoundInfoListPtr; |
|
struct SoundComponentData { |
|
long flags; |
|
OSType format; |
|
short numChannels; |
|
short sampleSize; |
|
UnsignedFixed sampleRate; |
|
long sampleCount; |
|
Byte * buffer; |
|
long reserved; |
|
}; |
|
typedef struct SoundComponentData SoundComponentData; |
|
typedef SoundComponentData * SoundComponentDataPtr; |
|
struct ExtendedSoundComponentData { |
|
SoundComponentData desc; /*description of sound buffer*/ |
|
long recordSize; /*size of this record in bytes*/ |
|
long extendedFlags; /*flags for extended record*/ |
|
long bufferSize; /*size of buffer in bytes*/ |
|
long frameCount; /*number of audio frames*/ |
|
long * frameSizesArray; /*pointer to array of longs with frame sizes in bytes*/ |
|
long commonFrameSize; /*size of each frame if common*/ |
|
void * extensionsPtr; /*pointer to set of classic atoms (size,type,data,...)*/ |
|
long extensionsSize; /*size of extensions data (extensionsPtr)*/ |
|
unsigned long bufferFlags; /*set or cleared flags*/ |
|
unsigned long bufferFlagsMask; /*which flags are valid*/ |
|
}; |
|
typedef struct ExtendedSoundComponentData ExtendedSoundComponentData; |
|
typedef ExtendedSoundComponentData * ExtendedSoundComponentDataPtr; |
|
typedef struct SoundParamBlock SoundParamBlock; |
|
typedef SoundParamBlock * SoundParamBlockPtr; |
|
typedef CALLBACK_API( Boolean , SoundParamProcPtr )(SoundParamBlockPtr * pb); |
|
typedef STACK_UPP_TYPE(SoundParamProcPtr) SoundParamUPP; |
|
struct SoundParamBlock { |
|
long recordSize; /*size of this record in bytes*/ |
|
SoundComponentData desc; /*description of sound buffer*/ |
|
UnsignedFixed rateMultiplier; /*rate multiplier to apply to sound*/ |
|
short leftVolume; /*volumes to apply to sound*/ |
|
short rightVolume; |
|
long quality; /*quality to apply to sound*/ |
|
ComponentInstance filter; /*filter to apply to sound*/ |
|
SoundParamUPP moreRtn; /*routine to call to get more data*/ |
|
SoundParamUPP completionRtn; /*routine to call when buffer is complete*/ |
|
long refCon; /*user refcon*/ |
|
short result; /*result*/ |
|
}; |
|
|
|
struct ExtendedSoundParamBlock { |
|
SoundParamBlock pb; /*classic SoundParamBlock except recordSize == sizeof(ExtendedSoundParamBlock)*/ |
|
short reserved; |
|
long extendedFlags; /*flags*/ |
|
long bufferSize; /*size of buffer in bytes*/ |
|
long frameCount; /*number of audio frames*/ |
|
long * frameSizesArray; /*pointer to array of longs with frame sizes in bytes*/ |
|
long commonFrameSize; /*size of each frame if common*/ |
|
void * extensionsPtr; /*pointer to set of classic atoms (size,type,data,...)*/ |
|
long extensionsSize; /*size of extensions data (extensionsPtr)*/ |
|
unsigned long bufferFlags; /*set or cleared flags*/ |
|
unsigned long bufferFlagsMask; /*which flags are valid*/ |
|
}; |
|
typedef struct ExtendedSoundParamBlock ExtendedSoundParamBlock; |
|
typedef ExtendedSoundParamBlock * ExtendedSoundParamBlockPtr; |
|
struct CompressionInfo { |
|
long recordSize; |
|
OSType format; |
|
short compressionID; |
|
unsigned short samplesPerPacket; |
|
unsigned short bytesPerPacket; |
|
unsigned short bytesPerFrame; |
|
unsigned short bytesPerSample; |
|
unsigned short futureUse1; |
|
}; |
|
typedef struct CompressionInfo CompressionInfo; |
|
typedef CompressionInfo * CompressionInfoPtr; |
|
typedef CompressionInfoPtr * CompressionInfoHandle; |
|
/*variables for floating point conversion*/ |
|
struct SoundSlopeAndInterceptRecord { |
|
Float64 slope; |
|
Float64 intercept; |
|
Float64 minClip; |
|
Float64 maxClip; |
|
}; |
|
typedef struct SoundSlopeAndInterceptRecord SoundSlopeAndInterceptRecord; |
|
typedef SoundSlopeAndInterceptRecord * SoundSlopeAndInterceptPtr; |
|
/*private thing to use as a reference to a Sound Converter*/ |
|
typedef struct OpaqueSoundConverter* SoundConverter; |
|
/*callback routine to provide data to the Sound Converter*/ |
|
typedef CALLBACK_API( Boolean , SoundConverterFillBufferDataProcPtr )(SoundComponentDataPtr *data, void *refCon); |
|
typedef STACK_UPP_TYPE(SoundConverterFillBufferDataProcPtr) SoundConverterFillBufferDataUPP; |
|
/*private thing to use as a reference to a Sound Source*/ |
|
typedef struct OpaqueSoundSource* SoundSource; |
|
typedef SoundSource * SoundSourcePtr; |
|
|
|
|
|
struct SoundComponentLink { |
|
ComponentDescription description; /*Describes the sound component*/ |
|
SoundSource mixerID; /*Reserved by Apple*/ |
|
SoundSource * linkID; /*Reserved by Apple*/ |
|
}; |
|
typedef struct SoundComponentLink SoundComponentLink; |
|
typedef SoundComponentLink * SoundComponentLinkPtr; |
|
struct AudioInfo { |
|
long capabilitiesFlags; /*Describes device capabilities*/ |
|
long reserved; /*Reserved by Apple*/ |
|
unsigned short numVolumeSteps; /*Number of significant increments between min and max volume*/ |
|
}; |
|
typedef struct AudioInfo AudioInfo; |
|
typedef AudioInfo * AudioInfoPtr; |
|
struct AudioFormatAtom { |
|
long size; /* = sizeof(AudioFormatAtom)*/ |
|
OSType atomType; /* = kAudioFormatAtomType*/ |
|
OSType format; |
|
}; |
|
typedef struct AudioFormatAtom AudioFormatAtom; |
|
typedef AudioFormatAtom * AudioFormatAtomPtr; |
|
struct AudioEndianAtom { |
|
long size; /* = sizeof(AudioEndianAtom)*/ |
|
OSType atomType; /* = kAudioEndianAtomType*/ |
|
short littleEndian; |
|
}; |
|
typedef struct AudioEndianAtom AudioEndianAtom; |
|
typedef AudioEndianAtom * AudioEndianAtomPtr; |
|
struct AudioTerminatorAtom { |
|
long size; /* = sizeof(AudioTerminatorAtom)*/ |
|
OSType atomType; /* = kAudioTerminatorAtomType*/ |
|
}; |
|
typedef struct AudioTerminatorAtom AudioTerminatorAtom; |
|
typedef AudioTerminatorAtom * AudioTerminatorAtomPtr; |
|
struct LevelMeterInfo { |
|
short numChannels; /* mono or stereo source*/ |
|
UInt8 leftMeter; /* 0-255 range*/ |
|
UInt8 rightMeter; /* 0-255 range*/ |
|
}; |
|
typedef struct LevelMeterInfo LevelMeterInfo; |
|
typedef LevelMeterInfo * LevelMeterInfoPtr; |
|
struct EQSpectrumBandsRecord { |
|
short count; |
|
UnsignedFixedPtr frequency; /* pointer to array of frequencies*/ |
|
}; |
|
typedef struct EQSpectrumBandsRecord EQSpectrumBandsRecord; |
|
typedef EQSpectrumBandsRecord * EQSpectrumBandsRecordPtr; |
|
enum { |
|
kSoundAudioCodecPropertyWritableFlag = 1L << 0 |
|
}; |
|
|
|
struct SoundAudioCodecPropertyRequestParams { |
|
UInt32 propertyClass; |
|
UInt32 propertyID; |
|
UInt32 propertyDataSize; /* out -- GetPropertyInfo, in/out -- GetProperty, in -- SetProperty*/ |
|
void * propertyData; /* in -- GetPropertyInfo, GetProperty, SetProperty*/ |
|
UInt32 propertyRequestFlags; /* out -- GetPropertyInfo*/ |
|
UInt32 propertyDataType; /* out -- GetPropertyInfo, often 0*/ |
|
ComponentResult propertyRequestResult; /* out -- GetPropertyInfo, GetProperty, SetProperty*/ |
|
}; |
|
typedef struct SoundAudioCodecPropertyRequestParams SoundAudioCodecPropertyRequestParams; |
|
|
|
|
|
/* Sound Input Structures*/ |
|
typedef struct SPB SPB; |
|
|
|
typedef SPB * SPBPtr; |
|
|
|
|
|
/*user procedures called by sound input routines*/ |
|
typedef CALLBACK_API_REGISTER68K( void , SIInterruptProcPtr, (SPBPtr inParamPtr, Ptr dataBuffer, short peakAmplitude, long sampleSize) ); |
|
typedef CALLBACK_API( void , SICompletionProcPtr )(SPBPtr inParamPtr); |
|
typedef REGISTER_UPP_TYPE(SIInterruptProcPtr) SIInterruptUPP; |
|
typedef STACK_UPP_TYPE(SICompletionProcPtr) SICompletionUPP; |
|
|
|
|
|
/*Sound Input Parameter Block*/ |
|
struct SPB { |
|
long inRefNum; /*reference number of sound input device*/ |
|
unsigned long count; /*number of bytes to record*/ |
|
unsigned long milliseconds; /*number of milliseconds to record*/ |
|
unsigned long bufferLength; /*length of buffer in bytes*/ |
|
Ptr bufferPtr; /*buffer to store sound data in*/ |
|
SICompletionUPP completionRoutine; /*completion routine*/ |
|
SIInterruptUPP interruptRoutine; /*interrupt routine*/ |
|
long userLong; /*user-defined field*/ |
|
OSErr error; /*error*/ |
|
long unused1; /*reserved - must be zero*/ |
|
}; |
|
|
|
/* |
|
* NewSoundParamUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( SoundParamUPP ) |
|
NewSoundParamUPP(SoundParamProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppSoundParamProcInfo = 0x000000D0 }; /* pascal 1_byte Func(4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(SoundParamUPP) NewSoundParamUPP(SoundParamProcPtr userRoutine) { return (SoundParamUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSoundParamProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewSoundParamUPP(userRoutine) (SoundParamUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSoundParamProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* NewSoundConverterFillBufferDataUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( SoundConverterFillBufferDataUPP ) |
|
NewSoundConverterFillBufferDataUPP(SoundConverterFillBufferDataProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppSoundConverterFillBufferDataProcInfo = 0x000003D0 }; /* pascal 1_byte Func(4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(SoundConverterFillBufferDataUPP) NewSoundConverterFillBufferDataUPP(SoundConverterFillBufferDataProcPtr userRoutine) { return (SoundConverterFillBufferDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSoundConverterFillBufferDataProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewSoundConverterFillBufferDataUPP(userRoutine) (SoundConverterFillBufferDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSoundConverterFillBufferDataProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* NewSIInterruptUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( SIInterruptUPP ) |
|
NewSIInterruptUPP(SIInterruptProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppSIInterruptProcInfo = 0x1C579802 }; /* register no_return_value Func(4_bytes:A0, 4_bytes:A1, 2_bytes:D0, 4_bytes:D1) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(SIInterruptUPP) NewSIInterruptUPP(SIInterruptProcPtr userRoutine) { return (SIInterruptUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSIInterruptProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewSIInterruptUPP(userRoutine) (SIInterruptUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSIInterruptProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* NewSICompletionUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( SICompletionUPP ) |
|
NewSICompletionUPP(SICompletionProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppSICompletionProcInfo = 0x000000C0 }; /* pascal no_return_value Func(4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(SICompletionUPP) NewSICompletionUPP(SICompletionProcPtr userRoutine) { return (SICompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSICompletionProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewSICompletionUPP(userRoutine) (SICompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSICompletionProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeSoundParamUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeSoundParamUPP(SoundParamUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeSoundParamUPP(SoundParamUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeSoundParamUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeSoundConverterFillBufferDataUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeSoundConverterFillBufferDataUPP(SoundConverterFillBufferDataUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeSoundConverterFillBufferDataUPP(SoundConverterFillBufferDataUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeSoundConverterFillBufferDataUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeSIInterruptUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeSIInterruptUPP(SIInterruptUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeSIInterruptUPP(SIInterruptUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeSIInterruptUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeSICompletionUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeSICompletionUPP(SICompletionUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeSICompletionUPP(SICompletionUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeSICompletionUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeSoundParamUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
InvokeSoundParamUPP( |
|
SoundParamBlockPtr * pb, |
|
SoundParamUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(Boolean) InvokeSoundParamUPP(SoundParamBlockPtr * pb, SoundParamUPP userUPP) { return (Boolean)CALL_ONE_PARAMETER_UPP(userUPP, uppSoundParamProcInfo, pb); } |
|
#else |
|
#define InvokeSoundParamUPP(pb, userUPP) (Boolean)CALL_ONE_PARAMETER_UPP((userUPP), uppSoundParamProcInfo, (pb)) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeSoundConverterFillBufferDataUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
InvokeSoundConverterFillBufferDataUPP( |
|
SoundComponentDataPtr * data, |
|
void * refCon, |
|
SoundConverterFillBufferDataUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(Boolean) InvokeSoundConverterFillBufferDataUPP(SoundComponentDataPtr * data, void * refCon, SoundConverterFillBufferDataUPP userUPP) { return (Boolean)CALL_TWO_PARAMETER_UPP(userUPP, uppSoundConverterFillBufferDataProcInfo, data, refCon); } |
|
#else |
|
#define InvokeSoundConverterFillBufferDataUPP(data, refCon, userUPP) (Boolean)CALL_TWO_PARAMETER_UPP((userUPP), uppSoundConverterFillBufferDataProcInfo, (data), (refCon)) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeSIInterruptUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
InvokeSIInterruptUPP( |
|
SPBPtr inParamPtr, |
|
Ptr dataBuffer, |
|
short peakAmplitude, |
|
long sampleSize, |
|
SIInterruptUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES && (!TARGET_OS_MAC || !TARGET_CPU_68K || TARGET_RT_MAC_CFM) |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeSIInterruptUPP(SPBPtr inParamPtr, Ptr dataBuffer, short peakAmplitude, long sampleSize, SIInterruptUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppSIInterruptProcInfo, inParamPtr, dataBuffer, peakAmplitude, sampleSize); } |
|
#else |
|
#define InvokeSIInterruptUPP(inParamPtr, dataBuffer, peakAmplitude, sampleSize, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppSIInterruptProcInfo, (inParamPtr), (dataBuffer), (peakAmplitude), (sampleSize)) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeSICompletionUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
InvokeSICompletionUPP( |
|
SPBPtr inParamPtr, |
|
SICompletionUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeSICompletionUPP(SPBPtr inParamPtr, SICompletionUPP userUPP) { CALL_ONE_PARAMETER_UPP(userUPP, uppSICompletionProcInfo, inParamPtr); } |
|
#else |
|
#define InvokeSICompletionUPP(inParamPtr, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppSICompletionProcInfo, (inParamPtr)) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES |
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ |
|
#define NewSoundParamProc(userRoutine) NewSoundParamUPP(userRoutine) |
|
#define NewSoundConverterFillBufferDataProc(userRoutine) NewSoundConverterFillBufferDataUPP(userRoutine) |
|
#define NewSIInterruptProc(userRoutine) NewSIInterruptUPP(userRoutine) |
|
#define NewSICompletionProc(userRoutine) NewSICompletionUPP(userRoutine) |
|
#define CallSoundParamProc(userRoutine, pb) InvokeSoundParamUPP(pb, userRoutine) |
|
#define CallSoundConverterFillBufferDataProc(userRoutine, data, refCon) InvokeSoundConverterFillBufferDataUPP(data, refCon, userRoutine) |
|
#define CallSIInterruptProc(userRoutine, inParamPtr, dataBuffer, peakAmplitude, sampleSize) InvokeSIInterruptUPP(inParamPtr, dataBuffer, peakAmplitude, sampleSize, userRoutine) |
|
#define CallSICompletionProc(userRoutine, inParamPtr) InvokeSICompletionUPP(inParamPtr, userRoutine) |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
typedef CALLBACK_API( void , FilePlayCompletionProcPtr )(SndChannelPtr chan); |
|
typedef STACK_UPP_TYPE(FilePlayCompletionProcPtr) FilePlayCompletionUPP; |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* NewFilePlayCompletionUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( FilePlayCompletionUPP ) |
|
NewFilePlayCompletionUPP(FilePlayCompletionProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppFilePlayCompletionProcInfo = 0x000000C0 }; /* pascal no_return_value Func(4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(FilePlayCompletionUPP) NewFilePlayCompletionUPP(FilePlayCompletionProcPtr userRoutine) { return (FilePlayCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFilePlayCompletionProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewFilePlayCompletionUPP(userRoutine) (FilePlayCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFilePlayCompletionProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeFilePlayCompletionUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeFilePlayCompletionUPP(FilePlayCompletionUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeFilePlayCompletionUPP(FilePlayCompletionUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeFilePlayCompletionUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeFilePlayCompletionUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void ) |
|
InvokeFilePlayCompletionUPP( |
|
SndChannelPtr chan, |
|
FilePlayCompletionUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeFilePlayCompletionUPP(SndChannelPtr chan, FilePlayCompletionUPP userUPP) { CALL_ONE_PARAMETER_UPP(userUPP, uppFilePlayCompletionProcInfo, chan); } |
|
#else |
|
#define InvokeFilePlayCompletionUPP(chan, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppFilePlayCompletionProcInfo, (chan)) |
|
#endif |
|
#endif |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES |
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ |
|
#define NewFilePlayCompletionProc(userRoutine) NewFilePlayCompletionUPP(userRoutine) |
|
#define CallFilePlayCompletionProc(userRoutine, chan) InvokeFilePlayCompletionUPP(chan, userRoutine) |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
prototypes |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
*/ |
|
|
|
|
|
/* Sound Manager routines */ |
|
/* |
|
* SysBeep() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SysBeep(short duration) ONEWORDINLINE(0xA9C8); |
|
|
|
|
|
/* |
|
* SndDoCommand() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndDoCommand( |
|
SndChannelPtr chan, |
|
const SndCommand * cmd, |
|
Boolean noWait) ONEWORDINLINE(0xA803); |
|
|
|
|
|
/* |
|
* SndDoImmediate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndDoImmediate( |
|
SndChannelPtr chan, |
|
const SndCommand * cmd) ONEWORDINLINE(0xA804); |
|
|
|
|
|
/* |
|
* SndNewChannel() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndNewChannel( |
|
SndChannelPtr * chan, |
|
short synth, |
|
long init, |
|
SndCallBackUPP userRoutine) ONEWORDINLINE(0xA807); |
|
|
|
|
|
/* |
|
* SndDisposeChannel() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndDisposeChannel( |
|
SndChannelPtr chan, |
|
Boolean quietNow) ONEWORDINLINE(0xA801); |
|
|
|
|
|
/* |
|
* SndPlay() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndPlay( |
|
SndChannelPtr chan, |
|
SndListHandle sndHandle, |
|
Boolean async) ONEWORDINLINE(0xA805); |
|
|
|
|
|
#if OLDROUTINENAMES |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* SndAddModifier() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndAddModifier( |
|
SndChannelPtr chan, |
|
Ptr modifier, |
|
short id, |
|
long init) ONEWORDINLINE(0xA802); |
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
#endif /* OLDROUTINENAMES */ |
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* SndControl() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndControl( |
|
short id, |
|
SndCommand * cmd) ONEWORDINLINE(0xA806); |
|
|
|
|
|
/* Sound Manager 2.0 and later, uses _SoundDispatch */ |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* SndSoundManagerVersion() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( NumVersion ) |
|
SndSoundManagerVersion(void) FOURWORDINLINE(0x203C, 0x000C, 0x0008, 0xA800); |
|
|
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* SndStartFilePlay() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndStartFilePlay( |
|
SndChannelPtr chan, |
|
short fRefNum, |
|
short resNum, |
|
long bufferSize, |
|
void * theBuffer, |
|
AudioSelectionPtr theSelection, |
|
FilePlayCompletionUPP theCompletion, |
|
Boolean async) FOURWORDINLINE(0x203C, 0x0D00, 0x0008, 0xA800); |
|
|
|
|
|
/* |
|
* SndPauseFilePlay() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndPauseFilePlay(SndChannelPtr chan) FOURWORDINLINE(0x203C, 0x0204, 0x0008, 0xA800); |
|
|
|
|
|
/* |
|
* SndStopFilePlay() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndStopFilePlay( |
|
SndChannelPtr chan, |
|
Boolean quietNow) FOURWORDINLINE(0x203C, 0x0308, 0x0008, 0xA800); |
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* SndChannelStatus() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndChannelStatus( |
|
SndChannelPtr chan, |
|
short theLength, |
|
SCStatusPtr theStatus) FOURWORDINLINE(0x203C, 0x0510, 0x0008, 0xA800); |
|
|
|
|
|
/* |
|
* SndManagerStatus() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndManagerStatus( |
|
short theLength, |
|
SMStatusPtr theStatus) FOURWORDINLINE(0x203C, 0x0314, 0x0008, 0xA800); |
|
|
|
|
|
/* |
|
* SndGetSysBeepState() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( void ) |
|
SndGetSysBeepState(short * sysBeepState) FOURWORDINLINE(0x203C, 0x0218, 0x0008, 0xA800); |
|
|
|
|
|
/* |
|
* SndSetSysBeepState() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndSetSysBeepState(short sysBeepState) FOURWORDINLINE(0x203C, 0x011C, 0x0008, 0xA800); |
|
|
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* SndPlayDoubleBuffer() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndPlayDoubleBuffer( |
|
SndChannelPtr chan, |
|
SndDoubleBufferHeaderPtr theParams) FOURWORDINLINE(0x203C, 0x0420, 0x0008, 0xA800); |
|
|
|
|
|
/* MACE compression routines, uses _SoundDispatch */ |
|
/* |
|
* MACEVersion() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( NumVersion ) |
|
MACEVersion(void) FOURWORDINLINE(0x203C, 0x0000, 0x0010, 0xA800); |
|
|
|
|
|
/* |
|
* Comp3to1() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
Comp3to1( |
|
const void * inBuffer, |
|
void * outBuffer, |
|
unsigned long cnt, |
|
StateBlockPtr inState, |
|
StateBlockPtr outState, |
|
unsigned long numChannels, |
|
unsigned long whichChannel) FOURWORDINLINE(0x203C, 0x0004, 0x0010, 0xA800); |
|
|
|
|
|
/* |
|
* Exp1to3() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
Exp1to3( |
|
const void * inBuffer, |
|
void * outBuffer, |
|
unsigned long cnt, |
|
StateBlockPtr inState, |
|
StateBlockPtr outState, |
|
unsigned long numChannels, |
|
unsigned long whichChannel) FOURWORDINLINE(0x203C, 0x0008, 0x0010, 0xA800); |
|
|
|
|
|
/* |
|
* Comp6to1() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
Comp6to1( |
|
const void * inBuffer, |
|
void * outBuffer, |
|
unsigned long cnt, |
|
StateBlockPtr inState, |
|
StateBlockPtr outState, |
|
unsigned long numChannels, |
|
unsigned long whichChannel) FOURWORDINLINE(0x203C, 0x000C, 0x0010, 0xA800); |
|
|
|
|
|
/* |
|
* Exp1to6() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( void ) |
|
Exp1to6( |
|
const void * inBuffer, |
|
void * outBuffer, |
|
unsigned long cnt, |
|
StateBlockPtr inState, |
|
StateBlockPtr outState, |
|
unsigned long numChannels, |
|
unsigned long whichChannel) FOURWORDINLINE(0x203C, 0x0010, 0x0010, 0xA800); |
|
|
|
|
|
/* Sound Manager 3.0 and later calls, uses _SoundDispatch */ |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* GetSysBeepVolume() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
GetSysBeepVolume(long * level) FOURWORDINLINE(0x203C, 0x0224, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SetSysBeepVolume() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SetSysBeepVolume(long level) FOURWORDINLINE(0x203C, 0x0228, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* GetDefaultOutputVolume() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
GetDefaultOutputVolume(long * level) FOURWORDINLINE(0x203C, 0x022C, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SetDefaultOutputVolume() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SetDefaultOutputVolume(long level) FOURWORDINLINE(0x203C, 0x0230, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* GetSoundHeaderOffset() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
GetSoundHeaderOffset( |
|
SndListHandle sndHandle, |
|
long * offset) FOURWORDINLINE(0x203C, 0x0404, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* UnsignedFixedMulDiv() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( UnsignedFixed ) |
|
UnsignedFixedMulDiv( |
|
UnsignedFixed value, |
|
UnsignedFixed multiplier, |
|
UnsignedFixed divisor) FOURWORDINLINE(0x203C, 0x060C, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* GetCompressionInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
GetCompressionInfo( |
|
short compressionID, |
|
OSType format, |
|
short numChannels, |
|
short sampleSize, |
|
CompressionInfoPtr cp) FOURWORDINLINE(0x203C, 0x0710, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SetSoundPreference() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SetSoundPreference( |
|
OSType theType, |
|
Str255 name, |
|
Handle settings) FOURWORDINLINE(0x203C, 0x0634, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* GetSoundPreference() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
GetSoundPreference( |
|
OSType theType, |
|
Str255 name, |
|
Handle settings) FOURWORDINLINE(0x203C, 0x0638, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* OpenMixerSoundComponent() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
OpenMixerSoundComponent( |
|
SoundComponentDataPtr outputDescription, |
|
long outputFlags, |
|
ComponentInstance * mixerComponent) FOURWORDINLINE(0x203C, 0x0614, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* CloseMixerSoundComponent() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
CloseMixerSoundComponent(ComponentInstance ci) FOURWORDINLINE(0x203C, 0x0218, 0x0018, 0xA800); |
|
|
|
|
|
/* Sound Manager 3.1 and later calls, uses _SoundDispatch */ |
|
/* |
|
* SndGetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndGetInfo( |
|
SndChannelPtr chan, |
|
OSType selector, |
|
void * infoPtr) FOURWORDINLINE(0x203C, 0x063C, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SndSetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndSetInfo( |
|
SndChannelPtr chan, |
|
OSType selector, |
|
const void * infoPtr) FOURWORDINLINE(0x203C, 0x0640, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* GetSoundOutputInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
GetSoundOutputInfo( |
|
Component outputDevice, |
|
OSType selector, |
|
void * infoPtr) FOURWORDINLINE(0x203C, 0x0644, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SetSoundOutputInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SetSoundOutputInfo( |
|
Component outputDevice, |
|
OSType selector, |
|
const void * infoPtr) FOURWORDINLINE(0x203C, 0x0648, 0x0018, 0xA800); |
|
|
|
|
|
/* Sound Manager 3.2 and later calls, uses _SoundDispatch */ |
|
/* |
|
* GetCompressionName() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.2 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
GetCompressionName( |
|
OSType compressionType, |
|
Str255 compressionName) FOURWORDINLINE(0x203C, 0x044C, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SoundConverterOpen() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.2 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundConverterOpen( |
|
const SoundComponentData * inputFormat, |
|
const SoundComponentData * outputFormat, |
|
SoundConverter * sc) FOURWORDINLINE(0x203C, 0x0650, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SoundConverterClose() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.2 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundConverterClose(SoundConverter sc) FOURWORDINLINE(0x203C, 0x0254, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SoundConverterGetBufferSizes() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.2 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundConverterGetBufferSizes( |
|
SoundConverter sc, |
|
unsigned long inputBytesTarget, |
|
unsigned long * inputFrames, |
|
unsigned long * inputBytes, |
|
unsigned long * outputBytes) FOURWORDINLINE(0x203C, 0x0A58, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SoundConverterBeginConversion() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.2 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundConverterBeginConversion(SoundConverter sc) FOURWORDINLINE(0x203C, 0x025C, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SoundConverterConvertBuffer() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.2 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundConverterConvertBuffer( |
|
SoundConverter sc, |
|
const void * inputPtr, |
|
unsigned long inputFrames, |
|
void * outputPtr, |
|
unsigned long * outputFrames, |
|
unsigned long * outputBytes) FOURWORDINLINE(0x203C, 0x0C60, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SoundConverterEndConversion() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.2 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundConverterEndConversion( |
|
SoundConverter sc, |
|
void * outputPtr, |
|
unsigned long * outputFrames, |
|
unsigned long * outputBytes) FOURWORDINLINE(0x203C, 0x0864, 0x0018, 0xA800); |
|
|
|
|
|
/* Sound Manager 3.3 and later calls, uses _SoundDispatch */ |
|
/* |
|
* SoundConverterGetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.3 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundConverterGetInfo( |
|
SoundConverter sc, |
|
OSType selector, |
|
void * infoPtr) FOURWORDINLINE(0x203C, 0x0668, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SoundConverterSetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.3 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundConverterSetInfo( |
|
SoundConverter sc, |
|
OSType selector, |
|
void * infoPtr) FOURWORDINLINE(0x203C, 0x066C, 0x0018, 0xA800); |
|
|
|
|
|
/* Sound Manager 3.6 and later calls, uses _SoundDispatch */ |
|
/* |
|
* SoundConverterFillBuffer() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.6 and later |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundConverterFillBuffer( |
|
SoundConverter sc, |
|
SoundConverterFillBufferDataUPP fillBufferDataUPP, |
|
void * fillBufferDataRefCon, |
|
void * outputBuffer, |
|
unsigned long outputBufferByteSize, |
|
unsigned long * bytesWritten, |
|
unsigned long * framesWritten, |
|
unsigned long * outputFlags) FOURWORDINLINE(0x203C, 0x1078, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SoundManagerGetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.6 and later |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundManagerGetInfo( |
|
OSType selector, |
|
void * infoPtr) FOURWORDINLINE(0x203C, 0x047C, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
* SoundManagerSetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.6 and later |
|
* CarbonLib: in CarbonLib 1.1 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SoundManagerSetInfo( |
|
OSType selector, |
|
const void * infoPtr) FOURWORDINLINE(0x203C, 0x0480, 0x0018, 0xA800); |
|
|
|
|
|
/* |
|
Sound Component Functions |
|
basic sound component functions |
|
*/ |
|
|
|
/* |
|
* SoundComponentInitOutputDevice() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentInitOutputDevice( |
|
ComponentInstance ti, |
|
long actions) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SoundComponentSetSource() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentSetSource( |
|
ComponentInstance ti, |
|
SoundSource sourceID, |
|
ComponentInstance source) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SoundComponentGetSource() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentGetSource( |
|
ComponentInstance ti, |
|
SoundSource sourceID, |
|
ComponentInstance * source) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SoundComponentGetSourceData() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentGetSourceData( |
|
ComponentInstance ti, |
|
SoundComponentDataPtr * sourceData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SoundComponentSetOutput() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentSetOutput( |
|
ComponentInstance ti, |
|
SoundComponentDataPtr requested, |
|
SoundComponentDataPtr * actual) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A); |
|
|
|
|
|
/* junction methods for the mixer, must be called at non-interrupt level*/ |
|
/* |
|
* SoundComponentAddSource() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentAddSource( |
|
ComponentInstance ti, |
|
SoundSource * sourceID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SoundComponentRemoveSource() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentRemoveSource( |
|
ComponentInstance ti, |
|
SoundSource sourceID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A); |
|
|
|
|
|
/* info methods*/ |
|
/* |
|
* SoundComponentGetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentGetInfo( |
|
ComponentInstance ti, |
|
SoundSource sourceID, |
|
OSType selector, |
|
void * infoPtr) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SoundComponentSetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentSetInfo( |
|
ComponentInstance ti, |
|
SoundSource sourceID, |
|
OSType selector, |
|
void * infoPtr) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0104, 0x7000, 0xA82A); |
|
|
|
|
|
/* control methods*/ |
|
/* |
|
* SoundComponentStartSource() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentStartSource( |
|
ComponentInstance ti, |
|
short count, |
|
SoundSource * sources) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0105, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SoundComponentStopSource() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentStopSource( |
|
ComponentInstance ti, |
|
short count, |
|
SoundSource * sources) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0106, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SoundComponentPauseSource() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentPauseSource( |
|
ComponentInstance ti, |
|
short count, |
|
SoundSource * sources) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0107, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SoundComponentPlaySourceBuffer() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SoundComponentPlaySourceBuffer( |
|
ComponentInstance ti, |
|
SoundSource sourceID, |
|
SoundParamBlockPtr pb, |
|
long actions) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0108, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
/* selectors for component calls */ |
|
enum { |
|
kSoundComponentInitOutputDeviceSelect = 0x0001, |
|
kSoundComponentSetSourceSelect = 0x0002, |
|
kSoundComponentGetSourceSelect = 0x0003, |
|
kSoundComponentGetSourceDataSelect = 0x0004, |
|
kSoundComponentSetOutputSelect = 0x0005, |
|
kSoundComponentAddSourceSelect = 0x0101, |
|
kSoundComponentRemoveSourceSelect = 0x0102, |
|
kSoundComponentGetInfoSelect = 0x0103, |
|
kSoundComponentSetInfoSelect = 0x0104, |
|
kSoundComponentStartSourceSelect = 0x0105, |
|
kSoundComponentStopSourceSelect = 0x0106, |
|
kSoundComponentPauseSourceSelect = 0x0107, |
|
kSoundComponentPlaySourceBufferSelect = 0x0108 |
|
}; |
|
/*Audio Components*/ |
|
/*Volume is described as a value between 0 and 1, with 0 indicating minimum |
|
volume and 1 indicating maximum volume; if the device doesn't support |
|
software control of volume, then a value of unimpErr is returned, indicating |
|
that these functions are not supported by the device |
|
*/ |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* AudioGetVolume() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioGetVolume( |
|
ComponentInstance ac, |
|
short whichChannel, |
|
ShortFixed * volume) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0000, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* AudioSetVolume() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioSetVolume( |
|
ComponentInstance ac, |
|
short whichChannel, |
|
ShortFixed volume) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A); |
|
|
|
|
|
/*If the device doesn't support software control of mute, then a value of unimpErr is |
|
returned, indicating that these functions are not supported by the device.*/ |
|
/* |
|
* AudioGetMute() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioGetMute( |
|
ComponentInstance ac, |
|
short whichChannel, |
|
short * mute) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* AudioSetMute() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioSetMute( |
|
ComponentInstance ac, |
|
short whichChannel, |
|
short mute) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); |
|
|
|
|
|
/*AudioSetToDefaults causes the associated device to reset its volume and mute values |
|
(and perhaps other characteristics, e.g. attenuation) to "factory default" settings*/ |
|
/* |
|
* AudioSetToDefaults() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioSetToDefaults(ComponentInstance ac) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A); |
|
|
|
|
|
/*This routine is required; it must be implemented by all audio components*/ |
|
|
|
/* |
|
* AudioGetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioGetInfo( |
|
ComponentInstance ac, |
|
AudioInfoPtr info) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* AudioGetBass() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioGetBass( |
|
ComponentInstance ac, |
|
short whichChannel, |
|
short * bass) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0006, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* AudioSetBass() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioSetBass( |
|
ComponentInstance ac, |
|
short whichChannel, |
|
short bass) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* AudioGetTreble() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioGetTreble( |
|
ComponentInstance ac, |
|
short whichChannel, |
|
short * Treble) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0008, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* AudioSetTreble() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioSetTreble( |
|
ComponentInstance ac, |
|
short whichChannel, |
|
short Treble) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0009, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* AudioGetOutputDevice() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioGetOutputDevice( |
|
ComponentInstance ac, |
|
Component * outputDevice) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A); |
|
|
|
|
|
/*This is routine is private to the AudioVision component. It enables the watching of the mute key.*/ |
|
/* |
|
* AudioMuteOnEvent() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
AudioMuteOnEvent( |
|
ComponentInstance ac, |
|
short muteOnEvent) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0081, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
/* selectors for component calls */ |
|
enum { |
|
kAudioGetVolumeSelect = 0x0000, |
|
kAudioSetVolumeSelect = 0x0001, |
|
kAudioGetMuteSelect = 0x0002, |
|
kAudioSetMuteSelect = 0x0003, |
|
kAudioSetToDefaultsSelect = 0x0004, |
|
kAudioGetInfoSelect = 0x0005, |
|
kAudioGetBassSelect = 0x0006, |
|
kAudioSetBassSelect = 0x0007, |
|
kAudioGetTrebleSelect = 0x0008, |
|
kAudioSetTrebleSelect = 0x0009, |
|
kAudioGetOutputDeviceSelect = 0x000A, |
|
kAudioMuteOnEventSelect = 0x0081 |
|
}; |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
|
|
enum { |
|
kDelegatedSoundComponentSelectors = 0x0100 |
|
}; |
|
|
|
|
|
|
|
/* Sound Input Manager routines, uses _SoundDispatch */ |
|
/* |
|
* SPBVersion() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( NumVersion ) |
|
SPBVersion(void) FOURWORDINLINE(0x203C, 0x0000, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SndRecord() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndRecord( |
|
ModalFilterUPP filterProc, |
|
Point corner, |
|
OSType quality, |
|
SndListHandle * sndHandle) FOURWORDINLINE(0x203C, 0x0804, 0x0014, 0xA800); |
|
|
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* SndRecordToFile() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SndRecordToFile( |
|
ModalFilterUPP filterProc, |
|
Point corner, |
|
OSType quality, |
|
short fRefNum) FOURWORDINLINE(0x203C, 0x0708, 0x0014, 0xA800); |
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* SPBSignInDevice() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBSignInDevice( |
|
short deviceRefNum, |
|
ConstStr255Param deviceName) FOURWORDINLINE(0x203C, 0x030C, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBSignOutDevice() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBSignOutDevice(short deviceRefNum) FOURWORDINLINE(0x203C, 0x0110, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBGetIndexedDevice() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBGetIndexedDevice( |
|
short count, |
|
Str255 deviceName, |
|
Handle * deviceIconHandle) FOURWORDINLINE(0x203C, 0x0514, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBOpenDevice() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBOpenDevice( |
|
ConstStr255Param deviceName, |
|
short permission, |
|
long * inRefNum) FOURWORDINLINE(0x203C, 0x0518, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBCloseDevice() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBCloseDevice(long inRefNum) FOURWORDINLINE(0x203C, 0x021C, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBRecord() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBRecord( |
|
SPBPtr inParamPtr, |
|
Boolean asynchFlag) FOURWORDINLINE(0x203C, 0x0320, 0x0014, 0xA800); |
|
|
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* SPBRecordToFile() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBRecordToFile( |
|
short fRefNum, |
|
SPBPtr inParamPtr, |
|
Boolean asynchFlag) FOURWORDINLINE(0x203C, 0x0424, 0x0014, 0xA800); |
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* SPBPauseRecording() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBPauseRecording(long inRefNum) FOURWORDINLINE(0x203C, 0x0228, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBResumeRecording() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBResumeRecording(long inRefNum) FOURWORDINLINE(0x203C, 0x022C, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBStopRecording() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBStopRecording(long inRefNum) FOURWORDINLINE(0x203C, 0x0230, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBGetRecordingStatus() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBGetRecordingStatus( |
|
long inRefNum, |
|
short * recordingStatus, |
|
short * meterLevel, |
|
unsigned long * totalSamplesToRecord, |
|
unsigned long * numberOfSamplesRecorded, |
|
unsigned long * totalMsecsToRecord, |
|
unsigned long * numberOfMsecsRecorded) FOURWORDINLINE(0x203C, 0x0E34, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBGetDeviceInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBGetDeviceInfo( |
|
long inRefNum, |
|
OSType infoType, |
|
void * infoData) FOURWORDINLINE(0x203C, 0x0638, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBSetDeviceInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBSetDeviceInfo( |
|
long inRefNum, |
|
OSType infoType, |
|
void * infoData) FOURWORDINLINE(0x203C, 0x063C, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBMillisecondsToBytes() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBMillisecondsToBytes( |
|
long inRefNum, |
|
long * milliseconds) FOURWORDINLINE(0x203C, 0x0440, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SPBBytesToMilliseconds() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SPBBytesToMilliseconds( |
|
long inRefNum, |
|
long * byteCount) FOURWORDINLINE(0x203C, 0x0444, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SetupSndHeader() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SetupSndHeader( |
|
SndListHandle sndHandle, |
|
short numChannels, |
|
UnsignedFixed sampleRate, |
|
short sampleSize, |
|
OSType compressionType, |
|
short baseNote, |
|
unsigned long numBytes, |
|
short * headerLen) FOURWORDINLINE(0x203C, 0x0D48, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* SetupAIFFHeader() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
SetupAIFFHeader( |
|
short fRefNum, |
|
short numChannels, |
|
UnsignedFixed sampleRate, |
|
short sampleSize, |
|
OSType compressionType, |
|
unsigned long numBytes, |
|
unsigned long numFrames) FOURWORDINLINE(0x203C, 0x0B4C, 0x0014, 0xA800); |
|
|
|
|
|
/* Sound Input Manager 1.1 and later calls, uses _SoundDispatch */ |
|
/* |
|
* ParseAIFFHeader() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
ParseAIFFHeader( |
|
short fRefNum, |
|
SoundComponentData * sndInfo, |
|
unsigned long * numFrames, |
|
unsigned long * dataOffset) FOURWORDINLINE(0x203C, 0x0758, 0x0014, 0xA800); |
|
|
|
|
|
/* |
|
* ParseSndHeader() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in SoundLib 3.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSErr ) |
|
ParseSndHeader( |
|
SndListHandle sndHandle, |
|
SoundComponentData * sndInfo, |
|
unsigned long * numFrames, |
|
unsigned long * dataOffset) FOURWORDINLINE(0x203C, 0x085C, 0x0014, 0xA800); |
|
|
|
|
|
|
|
|
|
|
|
|
|
#if !TARGET_OS_MAC || TARGET_API_MAC_CARBON |
|
/* Only to be used if you are writing a sound input component; this */ |
|
/* is the param block for a read request from the SoundMgr to the */ |
|
/* sound input component. Not to be confused with the SPB struct */ |
|
/* above, which is the param block for a read request from an app */ |
|
/* to the SoundMgr. */ |
|
typedef struct SndInputCmpParam SndInputCmpParam; |
|
typedef SndInputCmpParam * SndInputCmpParamPtr; |
|
typedef CALLBACK_API( void , SICCompletionProcPtr )(SndInputCmpParamPtr SICParmPtr); |
|
struct SndInputCmpParam { |
|
SICCompletionProcPtr ioCompletion; /* completion routine [pointer]*/ |
|
SIInterruptProcPtr ioInterrupt; /* interrupt routine [pointer]*/ |
|
OSErr ioResult; /* I/O result code [word]*/ |
|
short pad; |
|
unsigned long ioReqCount; |
|
unsigned long ioActCount; |
|
Ptr ioBuffer; |
|
Ptr ioMisc; |
|
}; |
|
|
|
/* |
|
* SndInputReadAsync() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SndInputReadAsync( |
|
ComponentInstance self, |
|
SndInputCmpParamPtr SICParmPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SndInputReadSync() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SndInputReadSync( |
|
ComponentInstance self, |
|
SndInputCmpParamPtr SICParmPtr) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SndInputPauseRecording() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SndInputPauseRecording(ComponentInstance self) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0003, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SndInputResumeRecording() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SndInputResumeRecording(ComponentInstance self) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SndInputStopRecording() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SndInputStopRecording(ComponentInstance self) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SndInputGetStatus() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SndInputGetStatus( |
|
ComponentInstance self, |
|
short * recordingStatus, |
|
unsigned long * totalSamplesToRecord, |
|
unsigned long * numberOfSamplesRecorded) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0006, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SndInputGetDeviceInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SndInputGetDeviceInfo( |
|
ComponentInstance self, |
|
OSType infoType, |
|
void * infoData) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0007, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SndInputSetDeviceInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SndInputSetDeviceInfo( |
|
ComponentInstance self, |
|
OSType infoType, |
|
void * infoData) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0008, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* SndInputInitHardware() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
SndInputInitHardware(ComponentInstance self) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0009, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
/* selectors for component calls */ |
|
enum { |
|
kSndInputReadAsyncSelect = 0x0001, |
|
kSndInputReadSyncSelect = 0x0002, |
|
kSndInputPauseRecordingSelect = 0x0003, |
|
kSndInputResumeRecordingSelect = 0x0004, |
|
kSndInputStopRecordingSelect = 0x0005, |
|
kSndInputGetStatusSelect = 0x0006, |
|
kSndInputGetDeviceInfoSelect = 0x0007, |
|
kSndInputSetDeviceInfoSelect = 0x0008, |
|
kSndInputInitHardwareSelect = 0x0009 |
|
}; |
|
#endif /* !TARGET_OS_MAC || TARGET_API_MAC_CARBON */ |
|
|
|
|
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=reset |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(pop) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack() |
|
#endif |
|
|
|
#ifdef PRAGMA_IMPORT_OFF |
|
#pragma import off |
|
#elif PRAGMA_IMPORT |
|
#pragma import reset |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif /* __SOUND__ */ |
|
|
|
|